Keep Going

빠르지 않아도 꾸준히

백준/Bronze

[브론즈 1] [Java] 백준 1952번: 달팽이2

금동진 2025. 2. 19. 21:34

아이디어

문제의 그림처럼 처음 우측으로 출발한다 하면, 행 방향으로 출발할 때 선을 꺾은 횟수(count)는 0이고, 끝에 부딪혀 방향을 꺾게 되면 count가 1이 되며 열 방향으로 이동한다.

 

이를 간단히 표현하면

 

count가 짝수일 때 행 방향으로 이동

-> M이 하나씩 감소

 

count가 홀수일 때 열 방향으로 이동

-> N이 하나씩 감소

 

이를 코드로 구현하면 다음과 같다.

import java.util.Scanner;

public class N1952 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int M = scanner.nextInt();
        int N = scanner.nextInt();
        int count = 0;

        while (M != 0 && N != 0) {
            switch (curve % 2) {
                case 0: {
                    M--;
                    count++;
                    break;
                }
                case 1: {
                    N--;
                    count++;
                    break;
                }
            }
        }
        count--;
        System.out.println(count);

    }
}

반복문이 끝나고 마지막에 count--를 하는 것은 M과 N이 모두 0이 되어 더이상 커브를 꺾을 필요가 없는데 count가 마지막에 추가돼서 조정해 준 것이다.

 

저것도 깔끔하게 수정할 수 있을 것 같은데, 간단한 문제라 남겨뒀다.

아직 갈 길이 멀다

// 버퍼는 아직 안배워서 잘 쓸 줄 모른다.


아직 초보라 많이 서툴고 틀린 부분이 있을 수 있습니다. 고수분들께서 조언해주실만한 사항이 있으면 감사히 받겠습니다.