프로그래머스
-
위장 해쉬로 풀기 자바스크립트TodayILearned/알고리즘 2021. 8. 16. 10:47
바로 전에 올린 '완주하지못한 선수' 2021.08.16 - [TodayILearned/알고리즘] - 완주하지 못한 선수 해쉬로 풀기 자바스크립트 와 비슷한 맥락의 문제이고, 다만 경우의 수가 합쳐져서 점화식 때문에 헷갈리게되는 문제이다. 또 문제가 대놓고 해쉬충돌이 있을테니 처리하라고 예고까지 해준다. (그 전 위장문제도 그랬음) function solution(clothes) { let key; const hashTable = {}; for (let i = 0; i < clothes.length; i++) { key = clothes[i][1]; if (!hashTable[key]) { hashTable[key] = 1; } else { hashTable[key] = hashTable[key] + 1..
-
완주하지 못한 선수 해쉬로 풀기 자바스크립트TodayILearned/알고리즘 2021. 8. 16. 10:41
해쉬문제니까 해쉬로 풀었다. 해당 문제를 이중 for문을 이용해서 푸는 방법도 있지만, 그렇게하면 시간복잡도가 n^2으로 늘어나기도하고 일단 그건 해시 풀이가 아니어서.. 어떤 주제로 문제가 주어지면 최대한 그 주제에 익숙해지기 위해서 해당 주제로 풀려고한다... function solution(participant, completion) { const HashTable = {}; let key; // Add : 해쉬충돌까지 고려했다. for (key of participant) { if (!HashTable[key]) { HashTable[key] = 1; } else { HashTable[key] = HashTable[key] + 1; } } // Search for (key of completion..
-
프로그래머스 최댓값과 최솟값TodayILearned/알고리즘 2021. 6. 14. 11:40
최댓값과 최솟값 난이도 : 하 문자열 코드 def solution(s): answer = '' a = s.split() lst = list(map(int,a)) m = max(lst) n = min(lst) answer = str(n) + ' ' + str(m) return answer 풀이 map, min과 max 내장함수를 이용했다. str을 형변환해서 int로 바꾸어 비교한 다음 다시 str로 변경하여 answer에 담았다.
-
프로그래머스 짝지어제거하기TodayILearned/알고리즘 2021. 6. 14. 01:23
짝지어 제거하기 종류 : 스택/큐 난이도 : 하 코드 def solution(s): answer = [] lst = list(s) for i in range(0,len(lst)): answer.append(lst[i]) while(len(answer) >= 2): if(answer[-1] == answer[-2]): answer.pop() answer.pop(-1) break if answer: return 0 else: return 1 return answer 풀이 주어진 문자열(s)를 list함수를 이용해 배열로 만든다. 배열의 길이만큼 answer에 문자를 하나씩 push(append)한다. 만약 answer의 길이가 2 이상이고, 문자열 두개를 비교했을 때 같다면, 순서대로 pop한다. 단 무한반..