본문 바로가기

문제 풀이/SWEA26

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.
1209번 - Sum 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 해석을 딱히 적을 게 없는 문제이다. (...) 여러 방향으로 배열 탐색을 연습시키기 위해서 낸 문제인 듯하다. 가로 방향, 세로 방향, 대각선, 역대각선 이렇게 총 4개의 포문이 필요할 것 같지만 조금 생각해보면 가로/세로 방향, 대각/역대각선 이렇게 2번의 포문으로 해결할 수 있다. 2. 코드 public class Day2_1209_Sum { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR.. 2021. 8. 2.
1206번 - View 문제의 저작권은 SW Expert Academy에 있습니다. (출처) 1. 문제 1-1. 문제 설명 1-2. 문제 해석 2. 코드 3. 실행시간 1. 문제 1-1. 문제 설명 1-2. 문제 해석 위 문제에서 요구하는 '조망권이 확보된 세대'란 결국 '나'를 기준으로 왼쪽 두 아파트와 오른쪽 두 아파트가 더 낮아야 한다. 그래야 조망권이 확보될 테니까. 그렇게 주변 아파트보다 현재 기준이 되는 아파트가 더 높다면 이제 고려해야 할 것은 몇 개의 세대가 조망권이 확보되었는가이다. 이는 '나'를 제외하고 가장 높은 아파트의 층수로 구할 수 있다. 예를 들어 B를 기준으로 봤을 때 B를 제외하고 B주변에서 가장 높은 아파트는 C임을 알 수 있다. B의 층수에서 C의 층수를 빼면 간단하게 조망권 세대수를 구할 수.. 2021. 8. 1.