Python351 [SW Expert Academy] 11315. 오목 판정 11315. 오목 판정 문제) N X N 크기의 판이 있다. 판의 각 칸에는 돌이 있거나 없을 수 있다. 돌이 가로, 세로, 대각선 중 하나의 방향으로 다섯 개 이상 연속한 부분이 있는지 없는지 판정하는 프로그램을 작성하라. [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다. 각 테스트 케이스의 첫 번째 줄에는 하나의 정수 N(5 ≤ N ≤ 20)이 주어진다. 다음 N개의 줄의 각 줄에는 길이 N인 문자열이 주어진다. 각 문자는 ‘o’또는 ‘.’으로, ‘o’는 돌이 있는 칸을 의미하고, ‘.’는 돌이 없는 칸을 의미한다. [출력] 각 테스트 케이스 마다 돌이 다섯 개 이상 연속한 부분이 있으면 “YES”를, 아니면 “NO”를 출력한다. 이 문제를 풀 때 주의해야 할 점! [반례] 7 ......... 2022. 2. 28. [python] Stack과 DFS 자료 구조인 Stack과 DFS(깊이 우선 탐색)에 대해 알아보도록 하자. 1. Stack (스택) 스택(stack)은 제한적으로 접근할 수 있는 나열 구조로, 접근 방법은 항상 목록의 끝에서만 일어난다. 따라서 후입선출 (Last In First Out—LIFO)의 특성을 가지는 자료구조라고 불리운다. 이와 반대인 선입선출의 구조를 가진 queue도 존재하지만, 이번 글에서는 스택만 다루도록 한다. 스택에서는 다음과 같은 중요한 연산이 존재한다. S.size() 현재 스택에 들어있는 데이터 원소 개수를 반환한다. S.pop() 스택의 가장 윗 데이터를 반환하고, 삭제한다. S.push() 스택의 가장 윗 데이터를 추가한다. S.empty() 스택이 비었다면 1, 그렇지 않다면 0을 반환한다. S.ful.. 2022. 2. 27. [백준] 1697번: 숨바꼭질 (python) 1697번: 숨바꼭질 문제 ) 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 : 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 : 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 풀이) 1 2 3 4 5 6 7 8 .. 2022. 2. 27. [백준] 2178번: 미로 탐색 (python) 2178번: 미로 탐색 문제 ) N×M크기의 배열로 표현되는 미로가 있다. 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력 : 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. 출력 : 첫째 줄에 지나야 하는 최소의 .. 2022. 2. 27. 이전 1 ··· 36 37 38 39 40 41 42 ··· 88 다음