코딩 테스트 (알고리즘) 5

[알고리즘] 베스트앨범 프로그래머스 Lv3. 파이썬

코드: https://github.com/ddalkyTokky/Algorithm_test/blob/main/Python3/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/42579.%E2%80%85%EB%B2%A0%EC%8A%A4%ED%8A%B8%EC%95%A8%EB%B2%94/%EB%B2%A0%EC%8A%A4%ED%8A%B8%EC%95%A8%EB%B2%94.py 1. 정렬해시는 모르곘고.. 그냥 정렬하면 될 것 같았고 실제로도 정렬해서 풀었다.. 뭔가 다른 풀이가 있나 찾아봐야곘다. 2. 최종 코드그냥, 집계를 가장 먼저 냈다.statics = [음악 번호, 장르(string), 해당 음악이 속한 장르의 총 재생 횟수, 해당 곡의 재생 횟수] 람다식..

[알고리즘] 부대복귀 프로그래머스 Lv3. 파이썬

코드: Algorithm_test/Python3/프로그래머스/3/132266. 부대복귀/부대복귀.py at main · ddalkyTokky/Algorithm_test · GitHub 1. BFS문제만 봐서는 정말 간단한 BFS, DFS 문제이다. 2. 역순 BFS그런데 이제 역순이었다.. Source를 순회하면서 Source => Destination 의 경로를 찾으려면 For Loop 을 N만큼 순회해야한다는 얘기가 된다. 이를 막기 위해, 아래 3가지를 수정했다.1. destination에서 출발해서 거리를 측정할것.2. visited를 list가 아닌 dictionary로 선언3. visited의 key는 각 노드, value는 destination까지의 거리 3. 최종 코드def solution..

[알고리즘] 연속 펄스 부분 수열의 합 - 161988

코드: https://github.com/ddalkyTokky/Algorithm_test/tree/main/Python3/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/3/161988.%E2%80%85%EC%97%B0%EC%86%8D%E2%80%85%ED%8E%84%EC%8A%A4%E2%80%85%EB%B6%80%EB%B6%84%E2%80%85%EC%88%98%EC%97%B4%EC%9D%98%E2%80%85%ED%95%A91. 부분합옛날에 남의 풀이를 보고도 못 풀었던 문제다...근데 지금 다시 보니까 이딴걸 왜 못풀었지..? 라는 자괴감이 몰려온다.. 부분합에 대한 원리만 알면 간단하다.딱 두번만 주어진 문자열을 순회하면 된다! 첫번째는 순회는 [1,..

[알고리즘] 인사고과 프로그래머스 Lv.3 파이썬

코드: Algorithm_test/Python3/프로그래머스/3/152995. 인사고과/인사고과.py at main · ddalkyTokky/Algorithm_test · GitHub1. 정렬하자 자신보다 두 수의 합이 더 큰 친구들의 수를 세서 +1 을 하면 자신의 순위이다.  가장 먼저 들었던 생각은 정렬하자. 였다. 중간에 사실 스택을 써야하나? 라는 생각에 코드가 조금 꼬이긴 했는데, 결과적으론 잘 동작한다. (개념적으론 크게 다르지 않은 아이디어 였어서 작동하는거다. 고쳐야하긴 한다.)2. 앞 수 기준으로만 정렬그런데, 인센티브의 후보가 아닐 수 있는건, 나뿐만이 아니다. 다른 사람도 후보에서 탈락 되는 경우의 수가 있다. 1, 나를 제외한 나머지들을 앞 수 기준으로 정렬해서 뒷수만 비교해 나간..

[알고리즘] 호텔대실 프로그래머스 Lv.2 파이썬

코드: Algorithm_test/Python3/프로그래머스/2/155651. 호텔 대실 at main · ddalkyTokky/Algorithm_test · GitHub1. 큐를 활용하자가장 먼저 들었던 생각은 큐를 활용해서, 최대 큐의 크기를 정답으로 내놓으면 된다였다. 예를들어, 예약 시간이 a, b, c, d, e 순으로 있다고 해보자. (시작 시간 기준)수행 순서큐 상태a 가 큐에 들어간다.[a]b 들어가기 전, b 의 시작 시간 기준으로 큐 안에 있는 녀석들중 대실 시간이 끝난 녀석이 있는지 확인한다. (정리하는 시간까지 +10분) a의 시간이 아직 안 끝났다면, [a]a의 시간이 끝났다면, []b 를 넣는다.a의 시간이 아직 안 끝났다면, [a, b]a의 시간이 끝났다면, [b]c 도 마찬가..