coding test 238

[파이썬] 1231. 중위순회

다음은 특정 단어(또는 문장)를 트리 형태로 구성한 것으로, in-order 형식으로 순회하여 각 노드를 읽으면 원래 단어를 알 수 있다고 한다. 위 트리를 in-order 형식으로 순회할 경우 SOFTWARE 라는 단어를 읽을 수 있다. 제한조건 총 10개의 테스트 케이스가 주어진다. 총 노드의 개수는 100개를 넘어가지 않는다. 트리는 완전 2진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다. 노드가 주어지는 순서는 아래 입력 예시와 같이 숫자 번호대로 주어진다. 입력 입력 파일의 첫 줄에는 각 케이스의 트리가 갖는 정점의 총 수 N(1

coding test 2021.03.16

[파이썬] 1226. 미로1

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다. 아래 그림과 같은 미로가 있다. 16*16 행렬의 형태로 만들어진 미로에서 흰색 바탕은 길, 노란색 바탕은 벽을 나타낸다. 가장 좌상단에 있는 칸을 (0, 0)의 기준으로 하여, 가로방향을 x 방향, 세로방향을 y 방향이라고 할 때, 미로의 시작점은 (1, 1)이고 도착점은 (13, 13)이다. 주어진 미로의 출발점으로부터 도착지점까지 갈 수 있는 길이 있는지 판단하는 프로그램을 작성하라. 아래의 예시에서는 도달 가능하다. 아래의 예시에서는 출발점이 (1, 1)이고, 도착점이 (11, 11)이며 도달이 불가능하다. [입력] 각 테스트 케이스의 첫 번째 줄에는 테스트 케이스의 번호가 주어지며, 바로 다음 줄에 테스트 케이스가 주어진다...

coding test 2021.03.12

[파이썬] 괄호 짝 판별

4종류의 괄호 문자들 '()', '[]', '{}', ''로 이루어진 문자열이 주어진다. 이 문자열에 사용된 괄호들의 짝이 모두 맞는지 판별하는 프로그램을 작성한다. 조건: 1. 괄호의 종류 : 대괄호 '[]', 중괄호 '{}', 소괄호 '()', 화살괄호 '' 2. 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 같아야 한다. 3. 같은 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다. 4. 괄호 사이에 포함 관계만 존재한다. 스택을 이용한 구현 방법 : 1. 배열에 있는 괄호를 차례대로 조사 2. 왼쪽 괄호를 만나면 스택에 삽입 3. 오른쪽 괄호를 만나면 스택에서 top 괄호를 삭제한 후, 오른쪽 괄호와 짝이 맞는지 검사 4. 스택이 비어 있으면 조건2 또는 조건3에 위배되고 괄호의 짝이 맞지 않으면..

coding test 2021.03.09

[Python] 같은 번호 짝 소거하기

0~9로 이루어진 번호 문자열에서 같은 번호로 붙어있는 쌍들을 소거하고 남은 번호를 출력한다. 단, 번호쌍이 소거되고 소거된 번호 쌍의 좌우 번호가 같은 번호이면 또 소거 할 수 있다. 예를 들어 아래의 번호 열을 언급한 방법으로 소거하고 알아낸 과정을 보도록 한다. ❣ 나의 풀이 # 스택을 이용한 풀이 stack=[0]*10 str=input().split()# 공백 제거 stack[0]=str[0] top=1 i=0 for i in range(1, 10): if top != 0 and stack[top-1] == str[i]:# 짝을 찾으면 stack[top-1]=0# 값 없애기(pop) top-=1 else:# 짝이 안 맞을 경우 stack[top]=str[i]# stack에 문자를 삽입(push)..

coding test 2021.03.09

[C] 패턴 매칭 해결하기

다음 주어지는 영어 문장에서 특정한 문자열의 개수를 리턴하는 프로그램을 작성하여라. ti를 검색하면, Start eating well with these eight tips for healthy eating, which cover the basics of a healthy diet and good nutrition. 위 INPUT의 답은 4가 된다. 제약 사항 총 10개의 테스트 케이스가 주어진다. 문장의 길이는 띄어쓰기 포함 1000자를 넘어가지 않는다. 한 문장에서 검색하는 문자열의 길이는 최대 10을 넘지 않는다. 한 문장에서 하나의 문자열만 검색한다. 입력 첫 줄에는 테스트케이스의 개수가 주어지고 그 다음 줄에는 검색 할 문자열이 주어진다. 그 다음 줄에는 문장이 주어진다. 입력 예시 1 ti S..

coding test 2021.03.04

[C] Ladder

by SW expert academy 사다리 게임에서 꽝에 도착하게 되는 출발 점을 찾아라. 꽝은 2로 표시한다. x=4인 출발점에서 화살표로 표시한 바와 같이, 아래 방향으로 진행하면서 좌우 방향으로 이동 가능한 통로가 나타나면 방향전환을 하게 된다. 방향 전환 이후엔 다시 아래 방향으로만 이동하게 되며, 바닥에 도착하면 멈추게 된다. 입력 첫 번째 줄에 test case의 수 T(1

coding test 2021.02.25

[파이썬, C] 절대값의 합 구하기

by SW academy 5*5의 2차 배열에 무작위로 25개의 숫자로 초기화를 한 후 25개의 각 요소에 대해서 그 요소와 이웃한 요소와의 차의 절대값을 구한 뒤, 구한 모든 값의 총합을 구한다. 예를 들어 아래 그림에서 7이 이웃한 값은 2, 6, 8, 12이며 차의 절대값은 12다. |2-7|+|8-7|+|12-7|+|6-7|=12 👩‍💼 나의 풀이 import math def calculate(): global sum for i in range(5): for j in range(5): for p in range(4): x=j+dx[p] y=i+dy[p] if 0 = 5) return true; return false; } int calAbs(int a1, int a2) {// 절대값으로 표현 re..

coding test 2021.02.23

[C] Baby-Gin Game

by SW expert academy 0~9 사이의 숫자 카드에서 임의의 카드 6장을 뽑았을 때, 3장의 카드가 연속적인 번호를 갖는 경우를 run이라 하고, 3장의 카드가 동일한 번호를 갖는 경우를 tripletes이라고 한다. 그리고, 6장의 카드가 run과 tripletes로만 구성된 경우를 Baby-Gin이라고 하는데, 6자리의 숫자를 입력 받아 Baby-Gin 여부를 판단하는 프로그램을 작성해 보자. 예) 667767은 두 개의 triplet이므로 Baby-Gin이다.(666, 777) 054060은 한 개의 run과 한 개의 triplet이므로 Baby-Gin이다. (456, 000) 101123은 한 개의 triplet가 존재하나, 023이 run이 아니므로 Baby-Gin이 아니다. 입력 ..

coding test 2021.02.16