일간임무
-
[일간임무] - 수식 최대화일간임무 2021. 10. 24. 22:54
Elapsed time = 60min 아이디어는 빠르게 떠올렸지만 한 가지를 구현하는데 애를 먹었습니다. 계산을 하고 나면 두 개의 값이 하나로 합쳐지면서 컨테이너의 한 공간을 제거하고 다음 공간을 당겨와야 하는데 어쩌면 좋을지 잘 몰라서 고민했습니다. Erase method는 자동으로 그것을 해결해주며 for loop의 j의 값을 1만큼 후퇴시키는 것으로 해결할 수 있었습니다. Permutation, 문자열 Splicing, for loop application 등등 낮은 난이도라고 하는데 알차게 구성된 것 같습니다.
-
[일간임무] - 괄호변환일간임무 2021. 10. 21. 22:21
Elapsed time = 22min "시키는 대로만 하세요." 만약, 지시 사항 없이 "짝이 있을 수도 있고 없을 수도 있는 괄호들을 짝을 잘 맞추어 정렬하는 프로그램을 짜세요."라는 문제로 나왔더라면 정말 어려웠을 것 같습니다. 다행히 모든 지시 사항이 문제에 나와 있었고 그것을 그대로 코드로 옮기면 되는 문제였습니다. 대신 해결해야 할 부문이 있습니다. 이 문제에서는 문자열을 '올바른 문자열'과 '균형 잡힌 문자열' 두 가지로 나누고 있었습니다. 그래서 어떤 문자열이 올바른지 혹은 균형이 잡혀 있는지 확인하는 테스트를 만들어야 합니다. 괄호는 무조건 열리고 나서 닫힙니다. 닫히고 나서 열리는 괄호는 통상적인 의미의 괄호가 아닙니다. 따라서 어떤 임의의 문자열을 처음부터 끝까지 읽으면서 닫히는 괄호의..
-
[일간임무] - 짝지어 제거하기일간임무 2021. 10. 15. 15:22
Elapsed time : 60min 아니 문제 이해를 잘못했습니다. 예시에 주어진 'baabaa'가 사라지는 과정이, 먼저 연속된 요소인 'aa'을 찾고 'aa'와 일하는 문자가 입력값에 있으면 'aa'을 삭제한 나머지 'bbaa'를 통해서 다시 연속된 문자 'bb'와 일치하는 'bb'가 있을 때 지우며 푸는 것인줄 알았습니다. 그게 아니고 그냥 첫 번째 Index부터 연속되면 무조건 지우는 문제였습니다. 그래서 예시 'baabaa'가 사라지는 논리가 'b'다음에 'a'가 왔으니 연속된 문자가 아니라서 살려두고, 'ba'다음에 'a'가 와서 'aa'가 연속되었으니 'baa'에서 'aa'을 지운 'b'가 남는 것이었습니다. 이제 'b'와 나머지 'baa'을 비교하면 'b'와 'b'는 연속된 같은 문자이니..
-
[일간임무] - 타겟 넘버일간임무 2021. 10. 14. 22:09
Elapsed time : 10min 처음에는 Permutation이나 Combination 문제로 생각했습니다. (+)와 (-)로 만들 수 있는 모든 경우의 수를 먼저 찾고 각 합을 구하면 되는 문제인 줄 알았는데 그러면 너무 큰 시간이 필요합니다. 어떻게 접근하면 좋을지 몰라서 그냥 그림으로 그렸는데 바로 영감을 받을 수 있었습니다. 입력으로 받은 컨테이너의 첫 번째 원소부터 하나씩 빼거나 더하면 위와 같이 이진 트리로 그려집니다. 그리고 이런 이진 트리를 이용한 검증 방법을 구현하기 위해서 재귀를 선택했습니다. Iterative하게 구성을 하면 좋을 것 같은데, 경우의 수가 갈라지는 걸 구현을 못하겠습니다. 할 수 있는지도 잘 모르겠습니다. 아무튼 재귀를 이용하면 모든 경우의 수를 가지를 뻗으며 확..
-
[일간임무] - 124 나라의 숫자일간임무 2021. 10. 14. 17:09
Elapsed time : 48min 진법 변환 문제인 줄 알고 무작정 덤벼들었다가 너무 헤맸습니다. 생각해보니 124 국가는 0이라는 개념이 없습니다. 따라서 진법을 변환 할 때, 3으로 정확하게 나누어 떨어지는 경우를 고려해야 했습니다. 뭔가 Theorem 같이 정립할 만한 개념이 있는 것인지 고민을 했는데 그런 건 아닌 것 같습니다. 주어진 규칙을 보고 3으로 나누어 떨어지는 경우에 어떤 식으로 변환이 되는지 관찰하면 어느 정도 답을 구할 수 있습니다. 예시로 주어진 건 1부터 10까지인데 이 중에 3, 6, 9가 이에 해당하기 때문에 여기서 어떤 식으로 0을 처리하는지 확인하면 됩니다. 3으로 나누어서 딱 맞게 떨어지면 첫 번째 자리수를 4로 결정하고 몫에서 1을 빼고 다음 계산을 진행하는 듯 합..
-
[일간임무] - 기능개발일간임무 2021. 10. 13. 15:31
Elapsed time : 22min 단순하게 모든 작업들을 현재 진척도, 하루가 지날 때마다 나아가는 진척 정도로 구성된 하나의 클래스로 만들어서 For Loop을 돌 때마다 작업이 진척되도록 구성했습니다. 구현하는데 오랜 시간이 걸린 건 아니지만 이렇게 만들고 싶었던 건 아닙니다. 1. 반드시 입력으로 받은 컨테이너의 첫 번째 작업이 완성되어야 다음 작업을 출시할 수 있다. 2. 어떤 N번째 작업이 완성되어 있더라도 N보다 작은 어떤 작업 M이 완성되어 있지 않다면 N은 출시할 수 없다. 더 나은 방법이 있습니다. 저처럼 For Loop한 번을 하루로 계산하지 말고 ( 100 - 현재 진척도[i] ) / 하루 작업 진척도[i]을 하면 어떤 작업 N이 완성되는데 걸리는 남은 시간을 구할 수 있습니다. ..