문제: 2748: 피보나치수2 백준 2748 Dynamic Programming Silver V 문제링크 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된 www.acmicpc.net 접근: a1, a2를 각각 피보나치 수열의 시작인 0과 1로 설정해주고 while loop이 한 번 돌 때마다 a1, a2를 재설정해준다. 포인터만 잘 설정해주면 된다. count가 N과 같아지면 while문이 종료된다. 내 코드: N = int(input()) a1 = 0 a2 = 1 # a1 a2 # a1 a2 # a..
문제: 7785 - 회사에 있는 사람 백준 7785 자료구조 Silver V 문제링크 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 접근 시험기간이 끝나고 드디어 알고리즘을 풀 여유가 생겼다 ㅠㅠ 몸풀기로 조금 쉬운 문제를 풀어봤는데 그 난이도에 비해 채점 시간이 너무 길어서 쫄리면서 기다렸는데 다행히 패스했다,, 각설하고.. 이 문제는 딕셔너리를 사용했는데 사람 이름을 key에 처음 등록해주고 같은 이름이 등장할 때 leave인지 enter인지 값을 update 해주..
문제: 1406-에디터 백준 1406 자료구조 Silver III 문제링크 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수� www.acmicpc.net 접근 이 문제는 풀기 전에 접근 방식을 엄청 고민했던 것 같다. 명령어들이 굉장히 직관적이기 때문에 그냥 list를 만들고 해당 인덱스에 insert하고 pop하는 방식으로 하면 되지 않을까? 했는데 시간 제한이 0.3초여서 시간 초과가 발생할 것 같아 스택을 사용하는 방법을 택했다. *insert와 pop은 O(n)의 시간 복잡도를 갖기 때문에 느린 편이다! *stack과 queue에서..