파이썬

    백준 5430 풀이 (AC, 큐, 파이썬)

    백준 5430 풀이 (AC, 큐, 파이썬)

    이번 문제는 은근히 손이 가는 문제였다. 문제 자체가 어렵지는 않다. R함수와 D함수에 맞춰 역할을 해주면 될뿐이다. 다만 시간제한이 1초이기 때문에 최대한 효율적으로 만들어 주어야 한다. 따라서 여러 조건에 맞추어 불필요한 부분을 제거하거나 트릭을 써주면 된다. 1. R이 R과 붙어있는 경우 제거해준다. (거꾸로 2번하면 원상태이기 때문) 2. opcode에 존재하는 D의 개수와 실제 주어지는 값의 개수 비교 3. R의 여부에 따라 앞을 뽑아낼지 뒤를 뽑아낼지 결정 (왜냐하면 실제 q를 거꾸로 배열해서 연산을 하려고 하면 큐의 크기가 큰 경우 시간이 오래걸린다. 그래서 굳이 reverse()를 쓰지 않고 앞을 뺄지 뒤를 뺄지 결정하는 것이다.) 4. 마지막에 출력방향을 결정하여 출력. 이때 살짝 어려웠..

    백준 2164 파이썬 풀이 (카드2, 큐)

    이번에는 카드 문제인데 쉬운 문제였다. 그냥 코드 짜면 된다. 다만 from collections import deque를 다시금 떠올리고자 풀이를 쓴다. from collections import deque n = int(input()) q = deque([i for i in range(1,n+1)]) while len(q) != 1: # 버리는거 q.popleft() # 뒤로 보내기 tmp = q.popleft() q.append(tmp) print(q[0])

    백준 9020 풀이 (골드바흐의 추측 )

    이번에는 "골드바흐의 추측"이라고 한다. 솔직히 난 문과출신이라 이런거 정의 보면 살짝 불편하다ㅋㅋㅋㅋ 그래도 정의가 어렵지는 않다. 큰 짝수는 반드시 두 소수로 나타낼 수 있다는 소리다. 그래서 N값에 대해서 두 소수를 구하면된다. 단, 두 소수의 차이가 가장 작아야한다. 그래서 시나리오를 짜봤다. 1. 소수리스트를 먼저 구한다.("에라토스테네스의 체"를 활용한다. 저번 포스팅에 이런방식으로 푸는 고수들이 있길래 따라했다.) 2. 짝수는 나누었을때 소수를 바로 가질수도 있고 하나씩 줄여가며 구해야할수도 있다. 3. 빼고자 하는 수가 소수인지, 뺀후에도 소수인지 판별한다. 4. 둘다 소수이면 출력 여기서 포인트는 빼고자 하는 수를 N/2부터 비교해서 빼기 시작한다는 것이다. line 13 def isPr..