프로그램34 백준 3085 사탕 게임 import sys input = sys.stdin.readline answer = 1 num = int(input()) num_list = [list(input()) for _ in range(num)] def find_max_count() : global answer for i in range(num) : count = 1 for j in range(1,num) : if num_list[i][j] == num_list[i][j-1] : count += 1 answer = max(answer, count) else : count = 1 for j in range(num) : count = 1 for i in range(1,num) : if num_list[i][j] == num_list[i-1][j] .. 2022. 6. 13. 백준 10448 유레카 이론 from itertools import combinations import sys input = sys.stdin.readline tri = [n * (n + 1) // 2 for n in range(46)] for _ in range(int(input())) : yes = 0 num = int(input()) for i in range(1, 46) : for j in range(i, 46) : for k in range(j, 46) : if tri[i]+tri[j]+tri[k] == num : yes = 1 print(yes) 완전 탐색을 이용해 해결했다. 테스트케이스가 1000까지 이기 때문에 넉넉하게 46번째까지 미리 구해서 배열에 넣어주었다. 겹치지 않는 3개의 유레카 수의 합이 입력받는 값과 같.. 2022. 6. 13. 백준 3040 백설 공주와 일곱 난쟁이 from itertools import combinations nanjeng = [] for _ in range(9) : nanjeng.append(int(input())) for i in combinations(nanjeng,7) : nanjeng_sum = sum(i) if nanjeng_sum == 100 : for k in i : print(k) break 완전 탐색을 이용해 해결했다. combinations 함수를 통해 7가지 인자를 가지는 부분 집합을 모두 구해 합이 100되는 경우를 출력했다. 2022. 6. 13. 백준 2075 N번째 큰 수 import heapq, sys input = sys.stdin.readline heap = [] num = int(input()) for _ in range(num) : array = list(map(int,input().split())) if heap : for a in array : if a > heap[0] : heapq.heappop(heap) heapq.heappush(heap, a) else : for a in array : heapq.heappush(heap, a) print(heap[0]) 힙을 이용해 해결했다. 모든 수를 다 넣고 해결하기에는 시간 복잡도가 매우 커진다. 파이썬은 최소 힙을 이용하기 때문에 힙의 크기를 N으로 제한하고, 0번째에 있는 수를 출력하게 되면 N번째 큰 수가 .. 2022. 6. 13. 백준 1935 후위 표기식2 import sys input = sys.stdin.readline count = int(input()) formula = input().strip() num = [] result = [] for _ in range(count) : num.append(int(input())) for thhh in formula : if 'A' 2022. 6. 13. 백준 5397 키로거 import sys input = sys.stdin.readline for _ in range(int(input())) : left_stk = [] right_stk = [] key_press = input().strip() for key in key_press : if key == '' : if right_stk : left_stk.append(right_stk.pop()) elif key == '-' : if left_stk : left_stk.pop() else : left_stk.append(key) left_stk.extend(reversed(right_stk)) print(''.join(left_stk)) 2개의 스택을 이용해서 해결했다. 키가 나오면 반대로 해결했다. -키가 나오면 왼쪽에 있.. 2022. 6. 13. 백준 7785 회사에 있는 사람 import sys input = sys.stdin.readline names = set() for _ in range(int(input())) : name, ent = input().split() if ent == 'enter' : names.add(name) elif name in names : names.remove(name) for name in sorted(names, reverse = True) : print(name) set 자료형을 이용해 해결했다. 각 줄을 2개로 나누어 입력받고 enter이면 set에 추가시키고, 아니라면 그 이름을 제거한다. 그리고 사전 역순으로 출력하는 코드를 작성했다. 2022. 6. 13. 백준 1302 베스트셀러 books = dict() for _ in range(int(input())) : book = input() if book in books : books[book] += 1 else : books[book] = 1 max_value = max(books.values()) top_book = [] for key, value in books.items() : if value == max_value : top_book.append(key) top_book.sort() print(top_book[0]) map 자료형을 이용해 문제를 해결했다. 입력된 내용을 key에 등록하고 value를 하나씩 증가시키는 코드를 구성하고, 최대 값이 여러개일 경우를 대비해 정렬해 abc순으로 첫번째 내용을 출력한다. 2022. 6. 13. 백준 11286 절댓값 힙 import heapq, sys input = sys.stdin.readline min_heap = [] max_heap = [] for _ in range(int(input())) : num = int(input()) if num > 0 : heapq.heappush(min_heap, num) elif num < 0 : heapq.heappush(max_heap, -num) else : if len(min_heap) == 0 : if len(max_heap) == 0 : print(0) else : print(-heapq.heappop(max_heap)) elif len(max_heap) == 0 or min_heap[0] < max_heap[0] : print(heapq.heappop(min_heap.. 2022. 6. 13. 백준 2164 카드2 from collections import deque count = int(input()) card = deque() for _ in range(count) : card.append(_ + 1) while len(card) != 1 : card.popleft() card.append(card.popleft()) print(card.popleft()) 큐에 1부터 N까지의 숫자를 넣어주고, 가장 앞의 숫자를 버리고 그 뒤의 숫자를 버린 것을 다시 맨 뒤에 넣어주는 코드이다. 2022. 6. 13. 백준 9012 괄호 for _ in range(int(input())) : ans = "YES" stk = [] for c in input() : if c == '(' : stk.append('(') else : if len(stk) > 0 : stk.pop() else : ans = "NO" if len(stk) > 0 : ans = "NO" print(ans) 배열을 스택처럼 활용해 (이 들어오면 (을 push해주고 그 이외의 것이 들어오면 pop을 해주도록 했다. 배열이 비었을 경우에 (이 아닌 다른 문자가 들어오면 NO로 출력되도록 했다. 2022. 6. 12. 백준 11866 요세푸스 문제 0 N, K = map(int, input().split()) peoples = [i for i in range(1, N+1)] i = 0 ans = [] for _ in range(N) : i += K - 1 i %= len(peoples) ans.append(peoples.pop(i)) print(f"") 연결 리스트를 이용해서 pop을 합과 동시에 ans라는 배열에 넣어주어 문제를 해결했다. 2022. 6. 12. 안드로이드 스튜디오 설치 우선 우리들의 친구 구글에 안드로이드 스튜디오를 검색해보자. 역시 자기들꺼라 그런지 맨위에 나온다. 그냥 바로 연결해주지 다운로드 페이지를 그리고 저 가운데 버튼을 클릭해주면 !!!!! 다운이 안된다. 그럴땐 저 왼쪽 버튼 Download options를 눌러 아카이브에서 찾아보자 스크롤 내려서 약관에 동의 2021.11.01 기준 제일 가까운 북극여우 버전을 다운받도록 하자 다음 다음 다음 다음 대기 피니쉬 돈샌드 그냥 정보 주기 싫다. 다음 다음 기다림 설치 끝 ! 아무거나 하나 만들어서 최신버전으로 업데이트하자 2021. 11. 1. 백준 기초 (while 문) 10052번 do while이 없다는게 슬프다 while True: a, b = map(int, input().split()) if a == 0 and b == 0: break print(a+b) 10951번 처음으로 좀 어려웠다 문제가 무슨 뜻인지 이해못했음 그냥 무한루프 돌렸는데 런타임떠서 다시보니 거를거 거르란뜻인듯 try catch 인듯 아닌듯 while True: try: a, b = map(int, input().split()) print(a + b) except: break 1110번 생각 안하고 의식의 흐름대로 만듬 일의자리랑 더한거의 일의자리랑.. num = int(input()) temp = num count = 0 while True: newnum = (temp % 10)*10 + (.. 2020. 12. 18. 백준 기초(for 문) 2739번 여담이지만 난 아직도 구구단을 외우기보다는 그때 그때 계산해서 쓰는편이다 그래서 사칙연산이 느림 A = int(input()) for i in range(1, 10): print("{0} * {1} = {2}".format(A, i, i*A)) 10950번 count = int(input()) for i in range(0, count): plusA, plusB = map(int, input().split()) print(plusA + plusB) 8393번 이거 언어 성능 테스트할때 쓰는거 아닌가 count = int(input()) total = 0 for i in range(0, count+1): total += i print(total) 15552번 파이썬에서 빠르게 입력받으려면 sys.. 2020. 12. 18. 백준 기초 (if문) 1330번 두 수 비교하기 elif는 상상도 못했자너 A, B = map(int, input().split()) if A > B: print(">") elif A == B: print("==") else: print(" 2020. 12. 17. 이전 1 2 3 다음