목록알고리즘 (15)
잘 정리해보자
(x,y), (x,y+1), (x+1,y), (x+1,y+1) 모두 다 같은 블럭인지 체크 (대문자로 변경해서 체크 -> 나중에 소문자로 변경해서) 같은 블럭인 경우, 그 자리 블록들을 소문자로 변경해서 사라질 블럭인것을 체크 모든 블럭 체크 후, 자신보다 아래 (y+1) 의 블럭이 소문자 또는 공백이면 데이터 교체 (교체 시, 공백으로 교체했음) 사라질 블럭이 없을때까지 반복 (블럭들이 전 후 같으면 반복종료) 사라진 블럭 개수 (공백) count 출력. python import copy def cntLower(arr) : cnt = 0 for k in arr : cnt += k.count('') return cnt def changeDown(m,n,arr) : for q in range(m) : fo..
case 1. import re def solution(dartResult): answer = 0 bonus = ['S','D','T']; calcArr = [] dart = re.findall('\d+[A-Z]\W?',dartResult) for i in range(len(dart)) : num = re.search('\d+',dart[i]).group() alph = re.search('\D',dart[i]).group() wild = re.search('\W',dart[i]) calcArr.append(int(num) ** (bonus.index(alph)+1)) if bool(wild) : g = wild.group() if g == '*' : if i == 0 : calcArr[i] *= 2 e..
1. 스택이 비어있을 때 '}'를 만나면 '{'로 바꿔주는 연산을 한다. 2. 주어진 문자열의 모든 문자를 순회한 결과 스택에 '{'가 남아있는 갯수를 세어 반으로 나눈다. 그러면 '{'를 지우기 위해 필요한 '}'의 갯수가 나온다. python num = 1 while True : cnt = 0 line = input().rstrip() if line.startswith('-') : break stack = []; flag = True line_list = list(line) for txt in line_list : if not(stack) and txt == '}' : cnt += 1 stack.append('{') elif txt == '}' : stack.pop() elif txt == '{' :..
pytnon while True : line = input().rstrip() if line == '.' : break stack = []; flag = True line_list = list(line) for txt in line_list : if txt == '(' or txt =='[' : stack.append(txt) elif txt == ']' : if stack and stack[-1] == '[' : stack.pop() else : flag = False break elif txt == ')' : if stack and stack[-1] == '(' : stack.pop() else : flag = False break print('yes' if flag and not(stack) els..
stack : LIFO (Last In First Out) 구조 python T = int(input()) for t in range(T) : line = list(input()) stack = []; flag = True for gual in line : if gual == '(' : stack.append(gual) elif not(stack) and gual == ')' : flag = False break elif gual == ')' : stack.pop() if len(stack) == 0 and flag == True: print('YES') else : print('NO') 문제 : www.acmicpc.net/problem/9012
프로그래머스 연습문제 Hash level1 - 완주하지 못한 선수 python #해시 - 완주하지 못한 선수 #case 1. 효율성out def solution(participant, completion): answer = '' for c in completion : participant[participant.index(c)] = '' answer = ''.join(participant) return answer #case 2. counter 이용 from collections import Counter def solution(participant, completion): answer = '' p = Counter(participant) c = Counter(completion) answer = list..
프로그래머스 연습문제 정렬 level1 - K번째 수 python #level 1 #정렬 - K번째 수 def solution(array, commands): answer = [] for arr in commands : i = arr[0]; j = arr[1]; k = arr[2] li = array[i-1:j] li.sort() answer.append(li[k-1]) return answer programmers.co.kr/learn/courses/30/lessons/42748