728x90
반응형
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_10866_덱2022-01-09 17:47:45"10866번: 덱" 파이썬 풀이 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 정수를 저장하는 덱에 N개의 명령어를 처리해야 한다. insert 활용 # insert 사용(결과: 맞았습니다!) import sys deq = [] for i in range(int(sys.stdin.readline())): cmd = sys.stdin.readline().split() if cmd[0] == 'push_front': deq.in..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1158_요세푸스 문제2022-01-05 10:57:11"1158번: 요세푸스 문제" 파이썬 풀이 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 1번 부터 N명의 사람이 원을 이루며 앉아있고, K번째 사람을 한 사람씩 제거한다. 제거된 순서를 예제와 같은 형태로 출력하면 된다. while문 사용 # while문 사용(결과: 맞았습니다!) N, K = map(int, input().split()) cir = [i for i in range(1, N+1)] rm = [] i = K - 1 while cir: if i > len(cir) - 1: i = i % len(cir) else: rm...
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_10845_큐2022-01-03 17:25:53"10845번: 큐" 파이썬 풀이 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 명령어를 구현하고 N개의 명령어 입력으로 큐를 조작해야 한다. 주의할 점은 출력은 명령어를 입력할 때마다 한 줄씩 출력되어야 한다. 예제 출력 1과 같은 형태로 단번에 모든 값이 출력되면 안된다. 이 부분을 오해해 "틀렸습니다"를 경험했다. 출력 값 누적 후 한번에 출력(틀렸습니다ㅠ) # 출력 값 누적 후 한번에 출력(결과: 틀렸습니다) impor..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1406_에디터2022-01-01 16:47:58https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 임의의 문자열을 입력하고, 커서를 조작하는 명령어, "L(왼쪽 한칸 이동), D(오른쪽 한칸 이동), B(왼쪽 문자 삭제), P $($라는 문자 왼쪽에 추가)"를 M개 입력한 결과를 출력해야 한다. 백준 알고리즘 강의 초급에 해당하는 문제인데, 시간제한 때문에 무척 애를 먹었다(이게 초급이라니). 시간 초과 # insert or slice 이용(결과: 시간 초과) import sys def L():..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_1874_스택 수열2021-12-30 11:45:58https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제를 이해하는데 시간이 오래 걸렸다! n개의 숫자를 입력 받아, 1부터 숫자에 해당하는 값 만큼 PUSH한다. 예를 들어 첫 번째 수가 4라면, 1, 2, 3, 4를 차례대로 PUSH하여 각각 '+' 출력! PUSH한 값이 4와 같아지면, 4를 POP하여 '-' 출력! 4 다음 수가 4 보다 작으면, 예를 들어 3..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_9093_단어 뒤집기2021-12-28 22:24:13https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net T개의 문장을 입력 받아, 문장별로 각 단어를 뒤집어 출력해야 한다. reversed 함수 이용(맞았습니다) # reversed 함수 이용(결과: 맞았습니다!) def make_rev(s): lst = s.split() rst = [] for i in lst: rst.append(''.join(reversed(i))) # join과 reversed 함수 이용 문자열 뒤집기 for i in ..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_10828_스택2021-12-27 22:19:01https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 5개의 명령어가 있고, 그 명령어 중 N개를 입력하면, 그에 맞는 결과가 순차적으로 최종 출력되어야 한다. globals 함수 이용(맞았습니다) # globals 함수 이용(결과: 맞았습니다!) stack = [] def push(n): stack.append(n) def pop(): if len(stack) == 0: rst.append(-1) else: rst.append(s..
- [ CS/코딩 테스트 ][알고리즘][파이썬] 백준_18870_좌표 압축2021-12-26 11:22:42https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net N개의 숫자를 작은 숫자 부터 0부터 시작하는 순위를 매겨야 한다. 같은 숫자는 같은 순위이다. 1차 시도(시간 초과) # 이중 for문(결과: 시간 초과) import sys N = int(sys.stdin.readline()) ipt = list(map(int, sys.stdin.readline().split())) idx = list(sort..
728x90
반응형