알고리즘
-
[백준 / 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,..
-
[프로그래머스 / Python] 시저 암호 | 초코더알고리즘/프로그래머스 2020. 1. 19. 19:51
문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 사항 -공백은 아무리 밀어도 공백입니다. -s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. -s의 길이는 8000이하입니다. -n은 1 이상, 25이하인 자연수입니다. 입출력 예 s n result AB 1 BC z 1 a a B z 4 e F d 접근법 알파벳 a-z까지, A-Z까지 각각 리스트에 저장합니다. 만약 ' '(공백문자)라면 리스트 s_n에 ' ..
-
[백준 / Python] 1012번 유기농 배추 | 초코더알고리즘/백준 2020. 1. 18. 19:41
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. ( www.acmicpc.net 접근법 1. dfs()함수 아래의 게시글을 참고하시면 DFS함수부분은 모두 동일합니다! https://sinsomi.tistory.c..