백준

Algorithm

[백준] 4375번 1 파이썬 초간단 문제 풀이

문제 풀이 처음에는 이게 뭐지? 했는데 3의 배수(3, 6, 9 , 12, ...)중에 1로만 이루어진 수 '111'은 3자리수기 때문에 3을 출력하고, 7의 배수(7, 14, 28, ...)중에 '1'로만 이루어진 수를 찾는 문제였습니다. 문제를 이해하니 간단하게 풀 수 있습니다. 저는 직관적으로 문자열을 1씩 더해가며 나누어 떨어지면 자릿수를 출력하도록 작성하였습니다. 이 문제는 종료 조건이 따로 명시되어 있지 않기 때문에 try except를 이용하여 EOFError가 발생하면 멈추도록 작성하였습니다. while True: try: n = int(input()) except EOFError: break total = '1' while True: if int(total) % n == 0: print(..

Algorithm

[백준] 1476번 날짜 계산 파이썬 문제 풀이

[문제 풀이] 위 문제는 브루트 포스 문제로 수의 범위가 넘어가면 1로 초기화해주면 되는 아주 간단한 문제이기 때문에 코드에 대한 설명은 생략하겠습니다. E, S, M = map(int, input().split()) year = 0 E1 = 0 S1 = 0 M1 = 0 while True: if E == E1 and S == S1 and M == M1: break year += 1 E1 += 1 S1 += 1 M1 += 1 if E1 > 15: E1 = 1 if S1 > 28: S1 = 1 if M1 > 19: M1 = 1 print(year)

Algorithm

[프로그래머스] 완주하지 못한 선수 파이썬 문제 풀이

문제 풀이 : 1.딕셔너리를 이용해서 참여자의 수를 구해줍니다. 만약 dict1안에 동명이인이 존재하다면 1을 더해주고 아니라면 1을 추가해줍니다. 2. 위에 1번에서 구했던 참여자 중 완주자가 있다면 -1 시켜줍니다. 3.완주하지 못한사람 (key,val)에서 val이 0이 아닌사람이 있다면 return 시켜줍니다. 처음에는 count를 이용해서 간단하게 문제를 풀었는데 효율성 테스트에서 시간초과 되어 문제의 핵심인 해시(딕셔너리)를 이용하여 풀었습니다. 아래는 효율성 테스트에서 실패한 코드입니다. 알고리즘은 결과도 중요하지만 효율성이 가장 중요하다는걸 깨달았네요. 매일 하나씩 알고리즘 문제를 풀다가, 얼마 전 백준 100문제를 넘게 풀었더라구요.(어느덧 실버2) 항상 꾸준하게 문제를 풀다보면 프로그래..

Algorithm

[백준] 1920번 수 찾기 파이썬 문제 풀이

문제 고민 처음 이 문제를 봤을때는 간단하게 생각하고 쉽게 풀었습니다. 하지만 다른 알고리즘들이 그렇듯 시간초과 문제가 발생했었고, 한참 고민하다 이진탐색 알고리즘을 알게 되었습니다. 그래서 이진탐색 알고리즘에 대해서 공부를 하게 됐습니다. 이진탐색 알고리즘 해당 배열이 있을때 시작, 중간, 끝점을 정해두고 찾고자 하는값이 중간점보다 큰지 작은지 비교한다. 만약에 중간점보다 값이 작다면(2 혹은 3) 아래와 같은 그림으로 끝점은 중간점보다 1칸 작은값으로 이동하게 되고 시작점과 비교해 중간점을 구합니다. 만약 이때 중간점이 구해진다면 일반적인 순차 탐색이라면 최대 8번이 걸릴 수 있었던 과정을 2번의 탐색으로 구할 수 있게 되는 알고리즘입니다. 정리 시작점과 끝점을 구해주고 중간점을 구한다. Target..

Algorithm

[백준] 10845번 큐 파이썬 문제풀이

from collections import deque import sys que = deque() def push(X): que.append(X) def pop(): if len(que) == 0: return -1 return que.popleft() def size(): return len(que) def empty(): if len(que) == 0: return 1 return 0 def front(): if len(que) == 0: return -1 return que[0] def back(): if len(que) == 0: return -1 return que[-1] result = [] N = int(sys.stdin.readline().rstrip()) for _ in range(N):..

Algorithm

[백준]9012번 괄호 문제 풀이

T = int(input()) result = [] for _ in range(T): VPS = input() num = 0 for i in VPS: if num

mntdev
'백준' 태그의 글 목록