본문 바로가기

Develop/Python + SWEA96

[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.
[SW Expert Academy] 1224. 계산기3 1224. 계산기3 문제) 문자열로 이루어진 계산식이 주어질 때, 이 계산식을 후위 표기식으로 바꾸어 계산하는 프로그램을 작성하시오. 예를 들어 “3+(4+5)*6+7” 라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다. "345+6*+7+" 변환된 식을 계산하면 64를 얻을 수 있다. 문자열 계산식을 구성하는 연산자는 +, * 두 종류이며 문자열 중간에 괄호가 들어갈 수 있다. 이 때 괄호의 유효성 여부는 항상 옳은 경우만 주어진다. 피연산자인 숫자는 0 ~ 9의 정수만 주어진다. [입력] 각 테스트 케이스의 첫 번째 줄에는 테스트 케이스의 길이가 주어진다. 그 다음 줄에 바로 테스트 케이스가 주어진다. 총 10개의 테스트 케이스가 주어진다. [출력] #부호와 함께 테스트 케이스의 번호를 .. 2022. 2. 25.
[SW Expert Academy] 1223. 계산기2 1223. 계산기2 문제) 문자열로 이루어진 계산식이 주어질 때, 이 계산식을 후위 표기식으로 바꾸어 계산하는 프로그램을 작성하시오. 예를 들어 “3+4+5*6+7” 라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다. "34+56*+7+" 변환된 식을 계산하면 44를 얻을 수 있다. 문자열 계산식을 구성하는 연산자는 +, * 두 종류이며 피연산자인 숫자는 0 ~ 9의 정수만 주어진다. [입력] 각 테스트 케이스의 첫 번째 줄에는 테스트 케이스의 길이가 주어진다. 그 다음 줄에 바로 테스트 케이스가 주어진다. 총 10개의 테스트 케이스가 주어진다. [출력] #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 답을 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13.. 2022. 2. 25.