본문 바로가기
320x100

PS84

[CLASS 3]백준 1620번, 1764번, 17219번 1620번 : 나는야 포켓몬 마스터 이다솜 생략 음.. 문제에 장황한 이야기를 적어놓으셨다.. 실제 문제는 입력과 출력만 보면 된다. 입력으로 다양한 포켓몬들의 영문이름과 요구사항이 들어오고, 출력으로는 요구사항에 맞게 인덱스 혹은 포켓몬 이름을 출력해주면 된다. 내 코드(시간 초과): import sys input = sys.stdin.readline n, m = map(int,input().split()) pm = [0] + [input() for _ in range(n)] pt = [] for _ in range(m): cmd = input() try: cmd = int(cmd) pt.append(pm[cmd].rstrip()) except ValueError: pt.append(str(pm.ind.. 2021. 1. 29.
[CLASS 3]백준 11723번, 17626번 11723번 : 집합 3가지 방법이 떠올랐다. 첫번째는 List로 구현하기, 두번째는 set을 사용해 간단하게 풀기, 3번째는 비트마스킹을 통해 풀기.. 근데 비트마스킹은 아직 나에게는 무리이고.. 첫번째와 두번쨰 방법으로 풀어보았다. 내 코드(List로 구현): import sys input = sys.stdin.readline def bisect(S,number): left = 0 right = len(S)-1 while left number: right = mid - 1 else: left = mid + 1 return False S = [] for _ in range(int(input())): cmd = input().split() if cmd[0] == 'add': if not bisect(S,.. 2021. 1. 29.
[CLASS 2]백준 18111번 - 마인크래프트 18111번 : 마인크래프트 이 문제를 보고 한참 고민했다. 뭔가 엄청난 알고리즘을 사용해야 하나?(알고 있는 것도 없지만) 라고 생각하던 와중 M,N 의 범위가 1부터 500이고, 높이의 범위는 0~256인것을 알고 그냥 브루트포스를 사용하면 되겠다고 판단하여 코드를 작성하였다. 일단 받은 높이들 중 최대높이 이하 최소높이 이상의 높이에서만 검사해보면 된다. 그 이외의 높이들은 쓸데없이 블럭을 캐거나 놓아야한다. 내 코드(시간 초과): n,m,b = map(int,input().split()) ground = [list(map(int,input().split())) for y in range(n)] maxHeight = max(max(ground)) minHeight = min(min(ground)) .. 2021. 1. 27.
[CLASS 2]백준 1966번, 2805번, 1929번 1966번 : 프린터 큐 상근이라는 친구가 프린터 소프트웨어를 만들었는데, 큐를 적용한듯 하다. 해당 문서가 몇 번째에 출력될 지 맞추면 된다. 처음에는 큐로 해야할듯 해서 collections의 deque를 사용했다. 그런데 나중에 그냥 list로 바꿔봤는데 오히려 속도가 약간 더 빨라졌다.. 내 코드(덱): from collections import deque import sys input = sys.stdin.readline for _ in range(int(input())): n, m = map(int,input().split()) queue = deque(list(map(int,input().split()))) count = 0 while True: if max(queue) > queue[0]:.. 2021. 1. 27.