해커랭크
-
문제 (링크) 괄호 타입에는 [], {}, ()가 있다 balanced bracket이란? 짝이 없는 괄호가 없고, 괄호의 부분집합이 짝이 맞는 괄호안에 들어가있어야 한다 [ 가 열려있으면 같은 타입의 괄호로 닫히기 전까지 다른 타입의 닫힘 괄호가 올 수 없다는게 포인트 풀이 def isBalanced(s): # Write your code here pairs= {'[':']', '{':'}', '(':')'} stacks = [] for i in s: if i in pairs: stacks.append(pairs[i]) else: try: if i != stacks.pop(): return "NO" except: return "NO" if len(stacks)==0: return "YES" else: ..
[hackerrank] balanced brackets (Python)문제 (링크) 괄호 타입에는 [], {}, ()가 있다 balanced bracket이란? 짝이 없는 괄호가 없고, 괄호의 부분집합이 짝이 맞는 괄호안에 들어가있어야 한다 [ 가 열려있으면 같은 타입의 괄호로 닫히기 전까지 다른 타입의 닫힘 괄호가 올 수 없다는게 포인트 풀이 def isBalanced(s): # Write your code here pairs= {'[':']', '{':'}', '(':')'} stacks = [] for i in s: if i in pairs: stacks.append(pairs[i]) else: try: if i != stacks.pop(): return "NO" except: return "NO" if len(stacks)==0: return "YES" else: ..
2023.06.27 -
문제 (링크) 아이스크림 가게에 간 두 친구, 출금한 돈에 딱 맞게 두 개의 아이스크림을 사려고 함 쓸 수 있는 돈과 각 아이스크림의 가격이 담긴 리스트가 주어짐 가격표의 index는 1부터 시작! 가격에 맞게 살 수 있는 아이스크림 가격의 index를 return 파이썬 풀이 def icecreamParlor(m, arr): # Write your code here pick = [] for i, v in enumerate(arr[:-1]): for j, w in enumerate(arr[i+1:]): if v+w == m: pick.extend([i+1, i+j+2]) return pick 굳이 가격표를 처음부터 순회할 필요가 없다~
[hackerrank] Ice Cream Parlor (Python)문제 (링크) 아이스크림 가게에 간 두 친구, 출금한 돈에 딱 맞게 두 개의 아이스크림을 사려고 함 쓸 수 있는 돈과 각 아이스크림의 가격이 담긴 리스트가 주어짐 가격표의 index는 1부터 시작! 가격에 맞게 살 수 있는 아이스크림 가격의 index를 return 파이썬 풀이 def icecreamParlor(m, arr): # Write your code here pick = [] for i, v in enumerate(arr[:-1]): for j, w in enumerate(arr[i+1:]): if v+w == m: pick.extend([i+1, i+j+2]) return pick 굳이 가격표를 처음부터 순회할 필요가 없다~
2023.06.25 -
문제 (링크) 주어진 문자열의 각 알파벳 개수가 모두 같으면 YES 리턴 문자열에서 문자 하나를 뺀 뒤 각 알파벳 개수가 모두 같으면 YES 리턴 이 외의 경우 문자열은 not valid, NO 리턴 파이썬 풀이 def isValid(s): # Write your code here orig_list = list(s) unique_list = list(set(s)) nums = [] for i in unique_list: nums.append(orig_list.count(i)) nums.sort() #ascending ifnum_1= [i for i in nums] ifnum_1[-1] = ifnum_1[-1]-1 if (len(set(nums))==1)| (len(set(ifnum_1))==1): ret..
[hackerrank] Sherlock and the Valid String (Python)문제 (링크) 주어진 문자열의 각 알파벳 개수가 모두 같으면 YES 리턴 문자열에서 문자 하나를 뺀 뒤 각 알파벳 개수가 모두 같으면 YES 리턴 이 외의 경우 문자열은 not valid, NO 리턴 파이썬 풀이 def isValid(s): # Write your code here orig_list = list(s) unique_list = list(set(s)) nums = [] for i in unique_list: nums.append(orig_list.count(i)) nums.sort() #ascending ifnum_1= [i for i in nums] ifnum_1[-1] = ifnum_1[-1]-1 if (len(set(nums))==1)| (len(set(ifnum_1))==1): ret..
2023.06.21 -
문제 (링크) 플레이어 1, 플레이어 2가 번갈아 가며 탑 부수기 게임을 진행 각 플레이어는 최적의 방식으로 게임을 진행함 input : n (int, 탑의 개수) /m (int, 탑의 높이) 각 탑은 탑의 높이를 균등하게 나눌 수 있는 수만큼 층을 감소시킬 수 있음 각 탑의 높이가 모두 1이 되게 만드는 플레이어가 승리 파이썬 풀이 def towerBreakers(n, m): # Write your code here if m==1: return 2 elif n%2 ==0: return 2 elif n%2 ==1: return 1 문제에서 '최적의 방법으로 게임을 진행'한다고 했고, 균등하게 나눌 수 있는 수만큼 층을 나눈다고 설명해 탑의 층수의 약수로만 나눌 수 있는 것처럼 처음에 생각했다. 처음에는 ..
[hackerrank] Tower Breakers (python)문제 (링크) 플레이어 1, 플레이어 2가 번갈아 가며 탑 부수기 게임을 진행 각 플레이어는 최적의 방식으로 게임을 진행함 input : n (int, 탑의 개수) /m (int, 탑의 높이) 각 탑은 탑의 높이를 균등하게 나눌 수 있는 수만큼 층을 감소시킬 수 있음 각 탑의 높이가 모두 1이 되게 만드는 플레이어가 승리 파이썬 풀이 def towerBreakers(n, m): # Write your code here if m==1: return 2 elif n%2 ==0: return 2 elif n%2 ==1: return 1 문제에서 '최적의 방법으로 게임을 진행'한다고 했고, 균등하게 나눌 수 있는 수만큼 층을 나눈다고 설명해 탑의 층수의 약수로만 나눌 수 있는 것처럼 처음에 생각했다. 처음에는 ..
2023.06.18