Algorithms(18)
-
스택, 큐, 덱 (2)
2164번 카드2 시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초 (추가 시간 없음)128 MB142020739515742950.972%문제N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다.예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기..
2025.01.06 -
스택, 큐 (2) - deque의 기능
파이선 collections 에서는 스택과 큐의 기능을 모두 합한 deque기능을 제공 (선입후출은 같음) from collections import dequequeue = deque() 이렇게 하면 queue를 만들 수 있고, 리스트 형태로 차례대로 수를 넣으면 됨queue와 stack의 차이는 맨 아래에 있는 글자도 불러올 수 있음 print(queue.popleft()) 를 하면 맨 아래(리스트에서는 맨 왼쪽)글자를 빼낼 수 있음값도 입력 가능함queue.appendleft() 를 하면 사용 가능 예시 : 문자대로 설정 가능 import sysfrom collections import dequen = int(sys.stdin.readline())queue = deque()for _ in range..
2025.01.06 -
스택, 큐, 덱
28278번 스택 2 시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초1024 MB43425158591315536.945%문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.1 X: 정수 X를 스택에 넣는다. (1 ≤ X ≤ 100,000)2: 스택에 정수가 있다면 맨 위의 정수를 빼고 출력한다. 없다면 -1을 대신 출력한다.3: 스택에 들어있는 정수의 개수를 출력한다.4: 스택이 비어있으면 1, 아니면 0을 출력한다.5: 스택에 정수가 있다면 맨 위의 정수를 출력한다. 없다면 -1을 대신 출력한다.입력첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000)둘째 줄부터 N개 줄에 명령이 하나씩 주어진다.출력을 요구하는..
2025.01.06 -
백준 알고리즘 약수, 소수와 배수 2 (2)
오랜만에 알고리즘 푸니까 안풀린다.. 역시 매일매일 해야한다. 17103 골드바흐 파티션골드바흐 파티션 시간 제한메모리 제한제출정답맞힌 사람정답 비율0.5 초512 MB36315133081024234.562%문제골드바흐의 추측: 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있다.짝수 N을 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 한다. 짝수 N이 주어졌을 때, 골드바흐 파티션의 개수를 구해보자. 두 소수의 순서만 다른 것은 같은 파티션이다. 입력 첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 출력각각의 테스트 케이스마다 골드바흐 파티션의 수를 출력한다.예제 입력 1 복사5681012100예제..
2024.12.22 -
약수, 배수와 소수 2
1934번 최소공배수 로직1. 구분이 필요한 로직은 첫번째(혹은 두번째) 숫자가 그 다음 숫자의 배수가 될 수 있느냐 2. 없으면 1부터 곱해나가서 매칭되는 숫자가 있느냐3. 없으면 두수의 곱이 최소 공배수임 초기 코드import sysn = int,sys.stdin.readline()for _ in range(n): a,b = map(int, sys.stdin.readline().split())if a % b or b % a == 0 : larger = max(a,b) print(larger)break for i in range(max(a,b),a*b+1): #최소공배수는두수의곱보다클수없음 if a%i == 0 and b%i ==0, print(i)break케이스 별로 나누..
2024.12.14 -
백준 집합과 맵
import sysn = int(sys.stdin.readline())s = {}for _ in range(n): name, action = sys.stdin.readline().split() if action == "enter": s[name] = True elif action == "leave": s[name] = Falsepresent = [name for name, status in s.items() if status]for name in sorted(present, reverse=True): print(name)10815번숫자 카드 시간 제한메모리 제한제출정답맞힌 사람정답 비율2 초256 MB128739551174029842.801%문제숫자 카드는 ..
2024.12.11