분류 전체보기 92

[swea] 7985. Rooted Binary Tree 재구성 D3 (자바)

7985. Rooted Binary Tree 재구성 D3[문제] 성삼 회사에서 마지막 면접을 보게 된 당신에게 Rooted Binary Tree 재구성이라는 미션으로 주었다.먼저 Rooted tree란 트리의 정점 중 하나가 root로 정해지고 간선의 양 끝점이 부모, 자식 관계를 맺게 만든 것이다.Rooted binary tree는 그 중에서 이진 트리(binary tree)를 의미한다.주어지는 정보는 tree를 중위 순회(inorder traversal)한 결과이다.일반적으로 중위 순회(inorder traversal)를 통해 기존의 트리를 완벽히 복구하는 것이 불가능하다.가능한 경우가 다양하기 때문이다.따라서 성삼 회사에서는 tree가 항상 완전 이진 트리를 제공한다고 하였다.높이가 K이며 정점의 ..

[swea] 1221. [S/W 문제해결 기본] 5일차 - GNS D3 (자바)

1221. [S/W 문제해결 기본] 5일차 - GNS D3 [문제]숫자 체계가 우리와 다른 어느 행성이 있다. 아래는 이 행성에서 사용하는 0 ~ 9의 값을 순서대로 나타낸 것이다."ZRO", "ONE", "TWO", "THR", "FOR", "FIV", "SIX", "SVN", "EGT", "NIN"0 ~ 9 의 값을 나타내는 단어가 섞여 있는 문자열을 받아 작은 수부터 차례로 정렬하여 출력하는 프로그램을 작성하라.예를 들어 입력 문자열이 "TWO NIN TWO TWO FIV FOR" 일 경우 정렬한 문자열은 "TWO TWO TWO FOR FIV NIN" 이 된다.[입력]입력 파일의 첫 번째 줄에는 테스트 케이스의 개수가 주어진다.그 다음 줄에 #기호와 함께 테스트 케이스의 번호가 주어지고 공백 문자 ..

[SWEA] 5356. 의석이의 세로로 말해요 D3 (자바)

5356. 의석이의 세로로 말해요 D3 [문제]아직 글을 모르는 의석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다.이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 의석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다.다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래에 의석이가 칠판에 붙여 만든 단어들의 예가 있다. A A B C D Da f z z0 9 1 2 1a 8 E W g 6P 5 h 3 k x 만들어진 다섯 개의 단어들의 글자 개수는 서로 다를 수 있다. 심심해진 의석이는 칠판에 만들어진 다섯 개의 단어를 세로로 읽으려 한다.세..

[SWEA] 5515. 2016년 요일 맞추기 D3 (자바)

5515. 2016년 요일 맞추기 D3[문제] 2016년 1월 1일은 금요일이었고, 문득 송송이는 특정 날짜의 요일을 맞추고 싶어졌다. 2016년은 윤년이기 때문에 2월 29일이 포함된다. 2016년 m월 d일은 무슨 요일인지 맞추는 프로그램을 작성하시오.[입력]첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스의 첫 번째 줄에는 두 정수 m,d가 공백으로 구분되어 주어진다.m,d는 2016년 m월 d일을 정상적으로 나타낼 수 있는 두 정수이다.[출력]각 테스트 케이스마다 2016년 m월 d일이 월요일이면 0, 화요일이면 1, 수요일이면 2, 목요일이면 3, 금요일이면 4, 토요일이면 5, 일요일이면 6을 출력한다. 입력21 112 31//T//첫번째 tc//두번째 tc 출력#1 4#2 5..

[swea] 7510. 상원이의 연속 합 D3 (자바)

7510. 상원이의 연속 합 D3[문제] 연속적인 것에는 어떤 아름다움이 있다.상원이는 자연수를 아름답게 쓰는 법을 고민하다가 연속된 자연수의 합으로 표현하기로 했다.예를 들면, 15는 15 = 7 + 8 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5 로 4가지 방법이 있다.아름다운 건 다다익선이라고 생각하는 상원이는 표현하고 싶은 자연수 N이 얼마나 많은 경우로 표현될 수 있는 지 궁금해졌다.상원이를 도와서 문제를 해결하자.[입력]첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스의 첫 번째 줄에는 표현하고 싶은 자연수 N(1 ≤ N ≤ 106)이 주어진다.[출력]각 테스트 케이스마다 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고,N을 연속된 자연수의 ..

[swea] 11736. 평범한 숫자 D3 (자바)

11736. 평범한 숫자 D3[문제]1 이상 N 이하의 정수가 적혀 있는 길이 N의 순열 p1, p2, …, pN이 있다. 수열에 있는 모든 숫자는 서로 다르다. 2 ≤ i ≤ N-1이며, pi-1, pi, pi+1 중 pi가 최솟값도, 최댓값도 아니라면 pi를 평범한 숫자라고 정의한다. 주어진 순열에서 평범한 숫자의 개수는 몇 개인가?[입력]첫 번째 줄에 테스트 케이스의 수 TC가 주어진다. 이후 TC개의 테스트 케이스가 새 줄로 구분되어 주어진다. 각 테스트 케이스는 다음과 같이 구성되었다. ∙ 첫 번째 줄에 정수 N 이 주어진다. (3 ≤ N ≤ 20) ∙ 이후 N개의 정수 pi가 주어진다. (3 ≤ pi ≤ N) 모든 pi는 서로 다르다.[출력]각 테스트 케이스마다 정답을 출력하라.입력..

[swea] 13547. 팔씨름 D3 (자바)

13547. 팔씨름 D3[문제] 소정이와 세정이는 점심 값을 누가 낼 지 정하기 위해 팔씨름을 하기로 했다. 공정하고 재밌는 경기를 위해 둘은 15번 팔씨름을 하여 8번 이상 이기는 사람이 점심 값을 면제받기로 하였다.둘은 지금까지 k번의 팔씨름을 진행했다. 이 결과는 길이가 k인 ‘o’ 또는 ‘x’로만 구성된 문자열 S[1..k]로 나타낼 수 있다. S[i]가 ‘o’면 소정이가 i번째 경기에서 승리했다는 것이고, ‘x’면 패배했다는 것이다.소정이는 앞으로 팔씨름을 15번째 경기까지 진행했을 때 자신이 점심값을 면제받을 가능성이 있는지 알고자 한다. 이를 대신해 주는 프로그램을 작성하라.[입력]첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스는 하나의 줄로 이루어진다. 각 줄에는 ‘o’ ..

[swea] 23003. 색상환 D3 (자바)

23003. 색상환 D3 [문제] 아래와 같은 육각 색상환을 생각해 보자.먼저 빨강, 노랑, 파랑을 배치하고, 사이사이에는 두 색상의 물감을 섞어서 만들 수 있는 색을 넣은 것이다.아래 그림에서 좌측 하단부터 시작해서 반시계방향으로 빨강색(red), 오렌지색(orange), 노란색(yellow), 초록색(green), 파랑색(blue), 보라색(purple)이 들어 있다.위의 색상환에 있는 색 두 개가 주어질 때, 두 색이서로 같은 색인지색상환에서 인접한 (한 변을 공유하고 있는) 색인지색상환에서 서로 반대에 있는 (마주보고 있는) 색인지를 판별하는 프로그램을 작성하라. [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스는 한 개의 줄로 이루어진다.각 줄에는 두 개의 색을 나타..

[swea] 7532. 세영이의 SEM력 연도 D3 (자바)

7532. 세영이의 SEM력 연도 D3세영이는 태양(S)과 지구(E)와 달(M)을 이용하여 연도를 기억한다.이를 이용한 방법을 SEM력이라고 부르며, SEM력은 자연수 3개, S, E, M으로 이루어져있다.첫 번째 수는 태양, 두 번째는 지구, 세 번째는 달과 관련 있다.AD 1년에 SEM력을 1 1 1로 정의했다.1년이 지날 때마다 각 수를 1씩 증가시키는데,S는 365보다 커지면 1로, E는 24보다 커지면 1로, M은 29보다 커지면 1로 돌아온다.예를 들어서 AD 24년은 24 24 24이고 AD 25년은 25 1 25이다.SEM력으로 이루어진 연도가 주어졌을 때, 이를 만족하는 실제 연도 중 가능한 가장 빠른 연도를 구하여라.[입력]첫 번째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 2000)가..

[SWEA] 10200. 구독자 전쟁 D3 (자바)

10200. 구독자 전쟁 D3 [문제]최근 어떤 동영상 플랫폼에서 P채널과 T채널이 구독자 수 1위를 놓고 치열한 경쟁을 벌이고 있다.영은이는 자신의 주위 사람들은 어떤 채널을 구독하고 있을지 궁금해하여, N명의 사람들에게 아래 두 질문을 하였다. - P채널을 구독하고 있나요? - T채널을 구독하고 있나요? 그 결과, A명이 1번 질문에 ‘네’라고 답했고, B명이 2번 질문에 ‘네’라고 답했다.이때, P채널과 T채널 모두 구독하고 있는 사람들이 최소 몇 명, 최대 몇 명인지 구하는 프로그램을 작성하라. [입력] 첫 번째 줄에 테스트 케이스의 수 T가 주어진다.각 테스트 케이스의 첫 번째 줄에는 세 개의 정수 N (1 ≤ N ≤ 100), A, B (0 ≤ A, B ≤ N)이 공백 하나를 사..