320x100 Blog189 [CLASS 3]백준 1003번 - 피보나치 함수 1003번 : 피보나치 함수 생각보다 애를 먹었던 문제이다. 규칙성을 찾을 생각은 하지 않고 무작정 0을 호출하면 변수에 1을 더해야지! 라는 생각에 갇혀있었던 것 같다. 이후 0을 호출하는 수의 규칙성을 찾아보았는데, 문제를 아주 쉽게 풀 수 있다. n 0 1 2 3 4 5 6 7 8 0 호출 1 0 1 1 2 3 5 8 13 1 호출 0 1 1 2 3 5 8 13 21 이를 확인하면 규칙성을 쉽게 발견할 수 있다. 먼저 1 호출은, 그냥 해당 피보나치 수와 값이 같다. 애초에 재귀를 통해 푸는 풀이에서 어떤 피보나치 수를 매개변수로 넘기던, fibo(1)을 수많이 호출하고 더해서 해당 값을 만들기 때문이다. 0을 호출하는 횟수는 제일 앞이 0 으로 시작하는 것만 제외하면 1 호출과 같은 순서를 띄고 .. 2021. 1. 29. [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. 이전 1 ··· 27 28 29 30 31 32 33 ··· 48 다음