프로그래머스(46)
-
프로그래머스 모음사전 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 재귀함수를 활용해 풀이했습니다. 주어진 스트링의 직전 스트링의 형태를 파악하고 여기에 +1 하는 식으로 풀이했습니다. 예를 들어 EIO의 직전 스트링은 EIIUU이므로, EIIUU의 순서에 1을 더한 것을 최종 답으로 반환하는 식입니다. 이를 위해 마지막 문자가 A가 아닌 경우는 그 문자의 전 문자(ex. E의 전 ..
2021.11.03 -
프로그래머스 위클리 챌린지 피로도 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/87946 코딩테스트 연습 - 12주차 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던 programmers.co.kr 시간제한 코테를 풀어보며 느낀 점... 그냥 생각 안 나면 약간 무식하게 느껴지더라도 모든 경우의 수를 고려해서 풀기 그래서 itertools의 permutations로 모든 가능한 순서를 구하고, 그에 따라 최대로 방문할 수 있는 던전의 수를 구했다. 그 중 최댓값을 반환하면 된다 더 좋은 방법이 있겠지?? from itertools import pe..
2021.10.26 -
프로그래머스 교점에 별 만들기 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/87377 코딩테스트 연습 - 10주차 [[2, -1, 4], [-2, -1, 4], [0, -1, 1], [5, -8, -12], [5, 8, 12]] ["....*....", ".........", ".........", "*.......*", ".........", ".........", ".........", ".........", "*.......*"] [[0, 1, -1], [1, 0, -1], [1, 0, 1]] ["*.*"] [[1, -1, 0], [2, -1, 0], [4, - programmers.co.kr 문제에 제시된 참고사항을 참고해 두 직선의 모든 좌표가 정수인 교점을 구하는 함수 inte..
2021.10.13 -
프로그래머스 입실 퇴실 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/86048?language=python3 코딩테스트 연습 - 7주차 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr 테스트 케이스 26, 27번에서 시간 초과 뜨는데 모르겠다 ㅎ leave를 큐로 만들어서 leave의 모든 요소가 사라질 때까지 다음을 반복한다. 현재 회의실에 leave의 첫번째 요소가 있으면 바로 제거, 그렇지 않으면 그 사람이 들어올 때까지 enter의 첫 요소를 pop해서 회의실 안에 들여놓는다. 이렇게 회의실 인원에 변화가 ..
2021.09.14 -
프로그래머스 실패율 코드 및 해설 (파이썬)
https://programmers.co.kr/learn/courses/30/lessons/42889?language=python3 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 입력으로 받은 stages를 오름차순으로 정렬합니다. 이후 Counter를 이용해 각 스테이지별 빈도를 딕셔너리로 저장하고, 이 딕셔너리의 키를 하나씩 받으며 실패율을 계산합니다. 실패율은 (현재 키의 빈도수) / (지금까지 남아있는 사용자 수)입니다. 처음의 사용자 수는 stages의 길이로 초기화하고, 이후 사용자 수에서 현재 ..
2021.08.04 -
금광 코드 및 해설 (파이썬)
출처: 이것이 취업을 위한 코딩 테스트다 with 파이썬, Q 31, p 375 이전에 풀이한 등굣길 문제와 유사하게 다이나믹 프로그래밍(DP)을 사용해 풀이했습니다. 입력으로 받은 금광에서 1열의 값은 그대로 두고, 2열부터 마지막 열까지 다음을 반복합니다. 첫 행의 경우 현재 위치를 왼쪽, 왼쪽 아래에서부터 접근해올 수 있습니다. 왼쪽 위는 금광이 존재하지 않습니다. 마지막 행의 경우 현재 위치를 왼쪽, 왼쪽 위에서부터 접근해올 수 있습니다. 왼쪽 아래는 금광이 존재하지 않습니다. 중간 행의 경우 현재 위치를 왼쪽, 왼쪽 위, 왼쪽 아래 모두에서 접근해올 수 있습니다. 접근해올 수 있는 모든 값들 중 최댓값을 현재 금광에서 얻을 수 있는 값과 더해줍니다. 마지막으로 마지막 열의 모든 값들 중 최댓값을..
2021.07.26