목록CodingTest/programmers (96)
기억은 짧고 기록은 길다

Link 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr Solution def solution(s): if len(s) == 1: return 0 stack = [] for i in range(len(s)): if len(stack) == 0: stack.append(s[i]) continue if stack[-1] == s[i]: stack.pop() else: stack.append(s[i]) if len(stack) == 0: return 1 else: return 0 🔑 key point..

Link 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr Solution def solution(prices): answer = [0] * len(prices) for i in range(len(prices) - 1): for j in range(i + 1, len(prices)): answer[i] += 1 if prices[i] > prices[j]: break return answer 🔑 key point: if prices[i] > prices[j]: break

Link 코딩테스트 연습 - 이진 변환 반복하기 programmers.co.kr Solution def solution(s): answer = [0, 0] while s != '1': count_0 = s.count('0') count_1 = s.count('1') answer[0] += 1 answer[1] += count_0 s = bin(count_1)[2:] return answer 🔑 key point: count(), bin() 📌 Tip: bin()[2:]

Link 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr Solution 해당 문제는 이중 for문을 사용하면 절대 효율성 테스트를 통과할 수 없다. 이에 zip()을 사용하여 for문 하나로 효율성 테스트를 통과하였다. def solution(phone_book): if len(phone_book) == 1: return True phone_book.sort() for i, j in zip(phone_book, phone_book[1:]): if i == j[:len(i)]: return False re..

Link 코딩테스트 연습 - 위장 programmers.co.kr Solution 해당 문제는 종류 별로 개수를 파악한 후 (개수 + 1) 값을 곱해주는 것만 파악하면 쉽게 해결할 수 있는 문제였다. 마지막에 -1은 아무것도 착용하지 않은 경우를 빼주는 역할을 한다. def solution(clothes): answer = 1 d = {} for i in range(len(clothes)): if clothes[i][1] in list(d.keys()): continue d[clothes[i][1]] = 1 for j in range(i + 1, len(clothes)): if clothes[i][1] == clothes[j][1]: d[clothes[i][1]] += 1 v = list(d.values..

Link 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr Solution def solution(n,a,b): answer = 1 while True: a = (a + 1) // 2 b = (b + 1) // 2 if a == b: return answer answer += 1 🔑 key point: a = (a + 1) // 2, b = (b + 1) // 2