Algorithm272 [ 파이썬(python) ] 프로그래머스 level2 - 기능 개발 📌 기능 개발 프로그래머스 level2 - 기능 개발 💡 나의 풀이 처음으로 2단계 문제를 풀어봤다. 앞으로 2단계 문제를 꾸준히 풀어야 하는데 괜찮을까.. 한번 도전해보자! (문제의 이해도를 높이기 위해 나중에 progress 변수명 대신 queue를 사용했다.) 완성되기까지 남은 진도율에서 현재 속도만큼 일했을 때 며칠만에 완성할 수 있는지 구하기. (나는 식으로 변환할 때 나머지가 없으면 몫을 그냥 append 시키고 나머지가 있으면 몫 + 1 해준 다음 append했다.) 이중 while문을 선언했는데 그 이유는 내 다음 순서가 나보다 값이 작더라도 내가 먼저 나가야 같이 나갈 수 있고 만약, 연속으로 나가야 할 일이 생길 때를 대비해서 이중 while문으로 작성했다. (break 해주는 것도 잊.. 2021. 7. 2. [ 파이썬(python) ] 백준 12789 - 도키도키 간식드리미 📍 백준 12789 - 도키도키 간식드리미 백준 12789 - 도키도키 간식드리미 ⚡️ 나의 풀이 언뜻 쉬워 보였으나 막상 풀어보니까 조금 어려웠다. 맨 앞의 사람만 이동이 가능하다는 지문을 보아 현재 줄 서있는 곳은 queue의 자료구조이고, 가운데 공간에 들어갈 순 있지만 제일 앞이 벽으로 막혔기 때문에 맨 뒤부터 사람이 나와야 한다. 따라서 한 명씩만 설 수 있는 공간은 stack으로 생각하면 쉽다. 대체적으로 queue와 stack 문제는 지문의 의미를 잘 해석해야 어떤 자료형을 사용해야 할지 감이 오는 것 같다. 그 감을 찾기 위해 많은 문제를 풀어봐야겠다. 처음에는 queue에 있는 사람이 다 빠지고 stack을 생각하면 될 줄 알았는데 queue 보다 stack에 더 작은 값이 있으면 sta.. 2021. 6. 30. [ 파이썬(python) ] 백준 1874 - 스택 수열 📍 백준 1874 - 스택 수열 문제: 백준 1874 - 스택 수열 💡 나의 풀이 나에겐 난이도가 있던 문제였다. 문제의 길이는 짧았지만 이해하기까지 시간이 오래 걸렸다. 중요한 포인트는 스택에 push하는 순서는 반드시 오름차순을 유지한다.라는 문장인데, 이를 다시 말하면 push 순서는 현재 만들어야 할 수열보다 작아질 수 없고 오직 current = target 혹은 current > target 할때만 성립한다는 의미다. 이를 이해하기까지는 꽤 오랜 시간이 걸렸다. 또, current는 어떻게 구현해야하지를 고민했는데 1~n까지 선언한 다음 여기서 뽑지 않은 값 중 가장 작은 값들을 가져와야 하는 건가? 생각했는데 결론적으로 current += 1씩 증가하면서 값을 넣으면 된다. current가 .. 2021. 6. 30. [ 파이썬(python) ] 백준 10546 - 배부른 마라토너 📍 백준 10546 - 배부른 마라토너 백준 10546 - 배부른 마라토너 ⚡️ 나의 풀이 저번에 풀었던 프로그래머스 - 완주하지 못한 선수 와 동일한 문제다. 참가자의 수가 100,000이기 때문에 기본적으로 list를 사용해서 풀면 시간 초과가 난다. 그래서 dict를 사용해서 풀었다. 참가자를 저장할 dict와 완주 선수를 저장할 dict를 defaultdict로 선언한다. defaultdict를 선언하면 동일 선수가 나와도 +1을 할 수 있기때문에 유용하게 사용할 수 있다. Counter 라이브러리로 참가자와 완주자의 Counter를 준다. 간단한 팁이지만 Counter끼리는 서로 빼거나 더할 수 있다. 남은 값의 key를 출력한다. 이런방식은 정답 판정을 받을 수 있으나, 메모리와 실행시간이 오.. 2021. 6. 29. [ 파이썬(python) ] 백준 1620 - 나는야 포켓몬 마스터 이다솜 📍 백준 1620 - 나는야 포켓몬 마스터 이다솜 백준 1620 - 나는야 포켓몬 마스터 이다솜 ⚡️ 나의 풀이 포켓몬을 좋아해서 풀어봤다. 입력의 범위가 100,000까지로 주어져있기 때문에 리스트로 풀기에 시간 초과가 날 것 같아 dict의 hash를 이용하여 풀었다. (hash 접근 시간복잡도는 O(1)) dict에서 value의 값을 찾는것은 dict[key]를 넣으면 되기 때문에 비교적 쉬웠으나 반대로 key를 찾는것은 dict로는 찾을 수 없기 때문에 dict.keys()만을 뽑아 리스트로 만드는 list(dict.keys())를 사용했고, 여기서 몇 번째인지 알기 위해 인덱싱을 사용했다. 입력을 key:value 형태인 dict로 넣어준다.(이때, key는 포켓몬 이름, value는 입력 순.. 2021. 6. 28. 이전 1 ··· 24 25 26 27 28 29 30 ··· 55 다음