분류 전체보기
-
[백준 / Python] 1158번 요세푸스 문제 | 초코더알고리즘/백준 2020. 1. 30. 14:46
https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 접근법 이 문제에서는 원의 인덱스가 어떻게 변하는지 살펴보는 것이 핵심이었습니다. 만약 3번째 인덱스를 제거한다고 생각하면, 처음 3번째 사람이 제거된 후에는 제거된 사람 다음사람부터 새로운 시작 인덱스가 되는 것을 이해해야 합니다. 즉, temp+=k-1 이부분에 해당합니다. 그리고 temp를 그냥 넣으면 안되는 이유는 2명이 있을때 3번째 사람을 제거하려면 1 2 1 이런식으로 세어지기 때문에 꼭 %를 이용해야합니다. 즉, temp=temp%len(nums) 이부분에 해당합니다. 나의..
-
[백준 / Python] 10845번 큐 | 초코더알고리즘/백준 2020. 1. 30. 14:42
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net 나의 풀이 import sys n=int(input()) do=[] queue=[] for _ in range(n): do.append(sys.stdin.readline().split()) for i in range(n): if do[i][0]=='push': queue.append(do[i][1]) if do[i][0]=='pop': if le..
-
[백준 / python] 1874번 스택 수열 | 초코더알고리즘/백준 2020. 1. 30. 14:41
https://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 나의 풀이 num_list = [] ans = [] count = 1 possibility = True for i in range(int(input())): num = int(input()) while count
-
[백준 /Python] 9012번 괄호 | 초코더알고리즘/백준 2020. 1. 26. 16:42
https://www.acmicpc.net/problem/9012 9012번: 괄호 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc www.acmicpc.net import sys def solve(string): stack=[] #문자열string에 들어있는 문자에 대해 for ch in strin..
-
[백준 / Python] 9093번 단어 뒤집기 | 초코더알고리즘/백준 2020. 1. 26. 16:41
https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 문제 문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 www.acmicpc.net t=int(input()) ans=[list(map(lambda x: x[::-1], input().split())) for _ in..
-
[백준 / Python] 10828 스택 | 초코더알고리즘/백준 2020. 1. 26. 16:40
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. www.acmicpc.net import sys n=int(input()) do=[] stack=[] for _ in range(n): do.append(sys.stdin.readline().split()) print(do) for i in range(len(do)): if do[i][0]== 'push': stack.append(do[i][1]) elif do[i][0]..
-
[백준 / Python] 7576번 토마토 | 초코더알고리즘/백준 2020. 1. 20. 01:10
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net 접근법 다른 부분은 앞의 게시글과 거의 동일합니다. 참고해주세요! https://sinsomi.tistory.com/entry/%EB%B0..
-
[백준 / Python] 2178번 미로 탐색 | 초코더알고리즘/백준 2020. 1. 19. 20:43
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 접근법 matrix 는 101111 101010 101011 111011 를 입력받은 리스트입니다. visited 는 [0]으로 이루어진 mxn 크기 리스트입니다. dx, dy는 상하좌우를 나타내는 리스트입니다. queue에는 가장 첫 시작점인 [[0,0]]이 들어갑니다. visited[0][0]은 방문한 곳이므로 1로 바꿔줍니다. - while문을 살펴보겠습니다. - x,y좌표에는 queue의 가장첫번째 원소대입.(현재는 0,..