Level2 - 7~12
알고리즘(Python)/프로그래머스 2022. 2. 13. 17:04

1. 전화번호부 목록 https://programmers.co.kr/learn/courses/30/lessons/42577 더보기 def solution(phone_book): p_set=set() len_s=set() phone_book.sort(key=len) for phone in phone_book: for l in len_s: if phone[:l] in p_set: return False p_set.add(phone) len_s.add(len(phone)) return True #난 set을 이용해 풀었지만, 문자열의 startswith를 쓰는 방법과 문자열의 한글자씩 늘려가며 해쉬에 있는지 확인하는 방법도 있다 2. 멀쩡한 사각형 https://programmers.co.kr/learn/co..

Level2 1~6
알고리즘(Python)/프로그래머스 2022. 2. 12. 22:07

1. 더 맵게 https://programmers.co.kr/learn/courses/30/lessons/42626 더보기 import heapq #최소값 두 값을 빼서 새로운 값을 넣고 다시 최소값을 ...=>힙 사용하기!! def solution(scoville, K): count=0 scoville.sort() while len(scoville)>1: smin=heapq.heappop(scoville) #heappop원리 : 제일 첫 원소가 min이므로 첫 원소를 꺼냄 if smin>=K: #따라서 첫원소가 최소값이 아닌 리스트를 heappop하면 xx => heapify를 하든지 sort()를 하고 pop인자로 넘겨줘야 함 return count smin2=heapq.heappop(scoville..

레벨1 문제풀이 - 26문제(카카오 제외)
알고리즘(Python)/프로그래머스 2022. 2. 3. 13:30

1. 최대공약수와 최소공배수 https://programmers.co.kr/learn/courses/30/lessons/12940 더보기 코드보기 def solution(n, m): #최대공약수 a,b=n,m while m: #작은수가 0이 될때까지 if n>m: n,m=m,n n,m=n,m%n #작은수, 큰수%작은수 return [n,a*b//n] #최소공배수=두수의 곱/최대공약수 2. 자연수 뒤집어 배열만들기 https://programmers.co.kr/learn/courses/30/lessons/12932 더보기 더보기 더보기 def solution(n): return list(map(int,str(n)[::-1])) # 마지막을 list로 해야 함, a,b=map(int,input().split..