본문 바로가기

SWEA23

1218번 - 괄호 짝짓기 1. 문제 1-1. 링크 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1-2. 문제 해석 stack에 괄호를 하나씩 하나씩 넣으면서 검사하면 되는 문제다. 나올 수 있는 경우의 수를 정리하면 쉽게 풀 수 있다. 여는 괄호가 나오는 경우 닫는 괄호가 나오는 경우 우선 크게 두 가지로 분류할 수 있다. 여는 괄호가 나오는 경우는 아무리 뒤죽박죽 나와도 상관없기 때문에 바로 stack에 추가하면 된다. 하지만 닫는 괄호는 다음과 같이 따져야 할 상황들이 있다. stack이 비어있는 경우 stack이 비어있는데 닫는 괄호가 들어갈 차례라는 건 아.. 2021. 8. 5.
1216번 - 회문2 1. 문제 1-1. 링크 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 링크 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1-2. 문제 해석 1215번 - 회문1 문제를 조금만 응용하면 쉽게 통과할 수 있는 문제다. 회문1 에서는 길이를 정해주고 그 길이에 맞는 회문이 몇 개 있는지 리턴했으니 이걸 이용해서 for문을 100부터 1까지 쭉 돌며 길이를 주고 그 길이에 맞는 회문이 단 한 개라도 있으면 리턴하면 된다. 아래 내용은 시간 복잡도를 줄이려 시도하다가 실패한 방법입니다. 시간 많으신 분들은 참고해서 시도해보세용 (될 것 같긴 함!) 간단하게 통과해서 코드를 좀 더 업그레이드할.. 2021. 8. 4.
1210번 - Ladder1 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 쉽게 말해 사다리 타기를 하는데 누가 당첨될지 맞춰보세요~ 하는 문제이다. 이 문제에서는 크게 두 가지 스킬 요구하고 있다. 배열을 이용해서 이동하는 것을 구현할 수 있는가? 맵을 벗어나는 상황을 잘 처리할 수 있는가? 이 두 가지를 중점으로 구현해나가면 된다. 그 외에 주의할 점은 다음과 같다. 출발지에서 위로 쭉쭉 올라가다가 왼쪽이나 오른쪽으로 갈 수 있는 칸에 도달하면 그쪽으로 이동한다라는 사실은 쉽게 생각해낼 수 있다. 문제는 옆으로 이동을 쭉쭉하다가 길이 끝나 다시 위로 올라가야 하는 때이다. 다시 위로.. 2021. 8. 3.
1220번 - Magnetic 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 빨간색 자성체는 S극을 향해가고 파란색 자성체는 N극을 향해 갔을 때 짝을 이루게 되는 그룹의 개수를 구하는 문제이다. 처음에는 포문을 돌리면서 모든 자성체들을 한 칸씩 한 칸씩 이동시켜야 하나...? 라는 생각을 했는데 O(n³) 정도 나올 것 같아서 이건 아니다 싶었고... 어차피 자성체의 최종 위치 따위가 필요한 게 아니라 짝을 이루는 지를 판단하면 되기 때문에 세로 방향으로 쭉 읽으면서 검사하는 방법을 사용했다. flag를 이용해서 짝을 찾으면 cnt++ 하는 식으로 코드를 짜니 쉽게 문제가 풀렸다. 2... 2021. 8. 2.
1208번 - Flatten 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 블록을 움직여서 최고점과 최저점의 차이를 최소로 줄였을 때, 그 차이를 출력하는 문제이다. 만약 블록을 움직이는 횟수에 제한이 없다면 아주 쉬운 문제가 됐을 것이다. 차이가 0 아니면 1이 나왔을 테니까. 하지만 이 문제는 이동 횟수가 정해져 있다. 문제에서 요구하는 동작은 기본적으로 다음과 같다. "가장 높은 곳에서 블록을 가져와 가장 낮은 곳으로 옮겨라" 가장 높은 곳을 찾아서 -1을 하고 가장 낮은 곳을 찾아서 +1을 하면 된다는 뜻이다. 이를 이동 횟수만큼 반복하면 된다. 처음에는 포문을 돌면서 최댓값 최.. 2021. 8. 2.