https://level.goorm.io/exam/195690/통증/quiz/1

이번 2주차에서 가장 어이가 없고 화가 났던 문제다.

'문자열 나누기'와 '구름 찾기 깃발' 뒤에 갑자기 이런 문제가 나온다?

그것도 브루트 포스와는 전혀 상관 없는 그리디 문제가? 정말... 영문을 모르겠다.

 

심지어 문제는 1주차 1일차 문제만큼이나 가볍다.

bandage, medicine, painkiller 뭐라고 써있는데 하나도 중요하지 않다.

그냥 'N을 입력 받고, 14, 7, 1을 사용하여 가장 작은 집합이 되게끔 나누어 보시오' 하는 문제다.

가장 작은 집합으로 나누기 위해서는, 가장 큰 값을 사용해야 한다.

고로 14로 나누고, 7로 나누고, 각각의 몫과 마지막 나머지를 더하면 된다.

1로 나눌 필요가 없다. 7로 나눈 나머지인 순간 그 자체로 1의 배수가 되니 말이다.

 

N = int(input())
answer = 0

answer += N // 14; N %= 14
answer += N // 7; N %= 7

print(answer + N)

코드 해설이라기에는 짧지만, 간단하게나마 적어본다.

N을 입력받고, 14로 나눈 몫, 7로 나눈 몫, 그리고 나머지를 더해서 정답을 출력한다.

N은 계산했기 때문에 중간에 14로 나눈 나머지와 7로 나눈 나머지를 저장한다.

 

문제 오류에 대해서 해결한 사람에게 보낸 문자(왼쪽), 8일차 오류 공지사항(오른쪽)

그리고 이 문제는 10시에 열리자마자 문제를 확인했다.

2주차의 앞선 두 문제는 괜찮은 문제였기에, 설렘을 안고 있었기 때문이다.

그런데 웬걸 문제도 심상치 않은데, 풀이도 이게 맞나? 싶을 정도로 심상치 않다.

 

어떤 상황에서든 코딩하기 위해 모바일 IDE, Pydroid, Cxxdroid를 깔아두고 다닌다.

컴퓨터도 켜지 않고, Pydroid로 다섯 줄을 작성하고, 문제 풀이는 3분만에 끝났다.

이때 모바일로 코드를 제출했는데, 테스트 케이스가 "1" 하나 뿐이었다.

그래서 테스트 케이스는 왜 또 하나 뿐이지?라는 생각을 갖고 있었는데, 이는 오류였다고 한다.

 

정말로... 문제를 전날 만들어서, 당일에 검토ㆍ수정ㆍ출제를 하는 건 아닌지 의심이 든다...

물론 구름이 챌린지만 진행하는 게 아니고, 다른 클라우드 서비스도 제공한다.

그렇기에 서버가 이상할 수도 있고, 충분히 할 수 있는 실수라고 생각한다.

챌린지와 해설에 대한 문제가 없었다면 말이다.

 

처음 설명에 구름이 작성했듯이, 그리디 알고리즘이다.

그리디 알고리즘을 아는 것? 알고리즘을 적재적소에 사용하기 위해서는 당연히 중요하다.

그리디 알고리즘을 적용하는 법? 풀이보다 더욱 중요하다!

왜 이 알고리즘을 쓰고, 언제 사용하고, 어떻게 적용하고, 어떻게 동작하는지 아는 것은 중요하다!!

 

근데 이 문제를, 예고도 없이, 완전 탐색을 배운다고 한 주차에, 좋은 문제 뒤에,

이런 문제를 냈냐는 것은 분명 문제가 있다.

 

양보해서 그리디를 낸다고 한다면, 단순 그리디가 아니라 완전 탐색과 두 가지를 엮었어야 했다.

약을 사용해서 통증을 치료할 수 없는 경우의 수를 구한다든가,

여러 종류의 약을 합쳐서 큰 물병에 담아마시면 개수를 적게 취급한다든가,

물약이 놓인 순서가 있는데, 정해진 규칙에 따라서 마실 때의 최소 개수라든가,

마실 수 있는 경우의 수를 모두 계산한 뒤에, 특정 물약의 개수가 가장 적어질 때라든가 말이다.

 

더 양보해서 카테고리는 계획일 뿐이니 뭐든 상관없다고 해도, 이 난이도로 출제해서는 안 됐다.

최소한 여러 가지 선택지가 있지 않았는가?

단순히 14, 7, 1이 아니라 3 종류의 숫자를 받아서 한다든가,

몇 가지 종류를 사용할지도 입력받고, 종류 수만큼 숫자를 받는다든가,

사용할 수 있는 약의 개수에 제한을 둔다든가,

몇 개마다 특정 물약은 반드시 마셔줘야 한다든가,

같은 약은 연달아서 마실 수 없게 한 뒤에, 마신 순서를 출력하게 한다든가,

어떤 물약끼리는 반드시 같이 마셔야만 한다든가,

 

이렇게나 많은데 대체 왜!

왜 하필 이렇게 많고 많은 선택지 중에서, 이 문제가 나왔어야 했는지는 모르겠다.

대체 왜.

'PS > 9oormthon Challenge' 카테고리의 다른 글

구름톤 챌린지 Week 2 - Day 10  (0) 2023.08.25
구름톤 챌린지 Week 2 - Day 9  (0) 2023.08.25
구름톤 챌린지 Week 2 - Day 7  (0) 2023.08.25
구름톤 챌린지 Week 2 - Day 6  (0) 2023.08.25
구름톤 챌린지 Week 1 - Day 5  (0) 2023.08.19

+ Recent posts