본문 바로가기
공부/algorithm

[algorithm] 방 번호

by 김쫘 2019. 2. 22.

방 번호

 

이번 문제는 스터디를하면서 풀게 된 문제이다.

갑자기 풀게 된 문제라 그런지 인터넷에서 내가 문제를 골라서 풀 때랑은 아주 다른 느낌이었다.

나는 단순한 사람이므로 그냥 문제 설명을 들은 대로 풀었다.

숫자가 들어있는 세트를 가지고 숫자를 하나씩 꺼내 방 번호를 완성하는 식이었다.

 

result는 사용한 세트 수이다. 시작할 때 세트를 하나 가지고 시작한다.

숫자를 하나씩 꺼내 쓰는데, 세트 수만큼 숫자가 사용되었으면 새로운 세트를 꺼내고(result++) 새 세트에서 숫자를 가져온다.

아주 문제에 충실한 풀이..!

 

내 풀이를 설명한 다음, 다른 분이 푼 풀이를 설명을 들었는데

이건 정말 중고등학생 때 풀던 수리 해결 방식이 생각이 난 풀이였다.

그래서 설명을 듣고 내 방식대로 풀어서 작성해보았다.

수학적으로 접근하면 아래와 같겠지.

 

 

일단 숫자가 몇 번 나오는지 모두 센 다음(6과 9는 호환되므로 함께 세고 중복되는 만큼 빠지도록 2로 나누어 올림해주었다.) 가장 큰 숫자를 찾는다.

숫자는 모두 하나 씩 있기 때문에 가장 많이 나온 숫자에 맞추어 세트 수가 정해진다.

 

이렇게 알고리즘을 수학적으로 접근해야하는데 자꾸 단순하게 접근하게 된다.

알고리즘 풀이에 답은 없다지만, 수학적으로 접근할 수록 그 해결 방법은 더 단순해진다는 걸 알기 때문에 더 아쉬워지는 문제였다.

 

'공부 > algorithm' 카테고리의 다른 글

[codewars] number fun  (0) 2019.03.24
[codewars] Dubstep  (0) 2019.03.23
[programmers] K번째수  (0) 2019.01.05
[programmers] 더 맵게  (0) 2018.11.01
[programmers] 쇠막대기  (0) 2018.10.29

댓글