티스토리 뷰

[문제] - 문제 설명이 이상하니 주의

출처 : https://school.programmers.co.kr
출처 : https://school.programmers.co.kr

 

※ 가로 2, 세로 5인 종이는 가로 1번, 세로 8번이 아니라 가로 4번, 세로 5번 OR 세로 1번 가로 8번이다.

종이를 90도로 돌리지 않는 이상 가로 1번, 세로 8번은 나올 수가 없는 조합이다.

(지문에서 90도로 돌린다는 얘기는 없었다.)

   
   
   
   
   

[정답]

- 풀긴 풀었는데 문제 설명이 애초에 잘 못 돼서 초반에 방향을 잘 못 잡았다.

- 순간 내가 알고 있는 가로, 세로의 개념이 바뀌었나 했다.

 

1.  내 풀이

class Solution {
    public int solution(int M, int N) {
        // M 가로 N 세로
        int answer = 0;
        if(M == 1 && N > 1) {
            answer = N - 1;
        } else if(N == 1 && M > 1) {
            answer = M - 1;
        } else if(M > 1 && N > 1) {
            answer += (M - 1);
            answer += (N - 1) * M;
            // 이것도 결국 한 줄로 간단히 할 수 있었군
            // (M - 1) + MN - M = MN - 1
        }
        return answer;
    }
}

 

- 사실 이건 수학을 조금만 하면 식을 세워서 금방 풀 수 있는 문제였다.(내가 그 조금을 못 했다.)

- 아래와 같이 계산하면 된다.

출처 : 내 필기임

 

- 즉, 총 가위질은 M*N - 1 이다.

class Solution {
    public int solution(int M, int N) {
        // M 가로 N 세로
        int answer = 0;
        answer = M*N - 1;
        return answer;
    }
}

- 이렇게 간단한 것을 나는 조건문을 세우고 아주 오버를 했다.

- 역시 머리가 나쁘면 타자치는 손이 고생한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함