알고리즘/백준
-
[백준 / 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] 1012번 유기농 배추 | 초코더알고리즘/백준 2020. 1. 18. 19:41
https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. ( www.acmicpc.net 접근법 1. dfs()함수 아래의 게시글을 참고하시면 DFS함수부분은 모두 동일합니다! https://sinsomi.tistory.c..
-
[백준 / Python] 2667번 단지번호붙이기 | 초코더알고리즘/백준 2020. 1. 18. 18:03
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net 접근법 좌표문제를 풀때는 dx,dx라는 리스트를 선언해주어서 풀면 좀더 접근이 쉬울것같습니다. dx=[-1,0,1,0] dy=[0,1,0,-1] dx,dx가 나타내..