본문 바로가기

코딩테스트/SWEA32

[JAVA] SWEA 1234번 비밀번호 문제 평소에 잔머리가 발달하고 게으른 철수는 비밀번호를 기억하는 것이 너무 귀찮았습니다. 적어서 가지고 다니고 싶지만 누가 볼까봐 걱정입니다. 한가지 생각을 해냅니다. 0~9로 이루어진 번호 문자열에서 같은 번호로 붙어있는 쌍들을 소거하고 남은 번호를 비밀번호로 만드는 것입니다. 번호 쌍이 소거되고 소거된 번호 쌍의 좌우 번호가 같은 번호이면 또 소거 할 수 있습니다. 예를 들어 아래의 번호 열을 철수의 방법으로 소거하고 알아낸 비밀 번호입니다. 입력 10개의 테스트 케이스가 10줄에 걸쳐, 한 줄에 테스트 케이스 하나씩 제공된다. 각 테스트 케이스는 우선 문자열이 포함하는 문자의 총 수가 주어지고, 공백을 둔 다음 번호 문자열이 공백 없이 제공된다. 문자열은 0~9로 구성되며 문자열의 길이 N은 10≤.. 2021. 8. 2.
[JAVA] SWEA 1224번 계산기3 문제 문자열로 이루어진 계산식이 주어질 때, 이 계산식을 후위 표기식으로 바꾸어 계산하는 프로그램을 작성하시오. 예를 들어 “3+(4+5)*6+7” 라는 문자열로 된 계산식을 후위 표기식으로 바꾸면 다음과 같다. "345+6*+7+" 변환된 식을 계산하면 64를 얻을 수 있다. 문자열 계산식을 구성하는 연산자는 +, * 두 종류이며 문자열 중간에 괄호가 들어갈 수 있다. 이 때 괄호의 유효성 여부는 항상 옳은 경우만 주어진다. 피연산자인 숫자는 0 ~ 9의 정수만 주어진다. 입력 각 테스트 케이스의 첫 번째 줄에는 테스트 케이스의 길이가 주어진다. 그 다음 줄에 바로 테스트 케이스가 주어진다. 총 10개의 테스트 케이스가 주어진다. 출력 #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 답을.. 2021. 8. 2.
[JAVA] SWEA 1219번 길찾기 문제 그림과 같이 도식화한 지도에서 A도시에서 출발하여 B도시로 가는 길이 존재하는지 조사하려고 한다. 길 중간 중간에는 최대 2개의 갈림길이 존재하고, 모든 길은 일방 통행으로 되돌아오는 것이 불가능하다. 다음과 같이 길이 주어질 때, A도시에서 B도시로 가는 길이 존재하는지 알아내는 프로그램을 작성하여라. - A와 B는 숫자 0과 99으로 고정된다. - 모든 길은 순서쌍으로 나타내어진다. 위 예시에서 2번에서 출발 할 수 있는 길의 표현은 (2, 5), (2, 9)로 나타낼 수 있다. - 가는 길의 개수와 상관없이 한가지 길이라도 존재한다면 길이 존재하는 것이다. - 단 화살표 방향을 거슬러 돌아갈 수는 없다. 제약 사항 출발점은 0, 도착점은 99으로 표현된다. 정점(분기점)의 개수는 98개(출발점.. 2021. 7. 30.
[JAVA] SWEA 1218번 괄호 짝짓기 문제 4 종류의 괄호문자들 '()', '[]', '{}', '' 로 이루어진 문자열이 주어진다. 이 문자열에 사용된 괄호들의 짝이 모두 맞는지 판별하는 프로그램을 작성한다. 예를 들어 아래와 같은 문자열은 유효하다고 판단할 수 있다. 아래와 같은 문자열은 유효하지 않은 문자열이다. 붉은색으로 표시된 괄호의 짝을 찾을 수 없기 때문이다. 아래 문자열은 열고 닫는 괄호의 개수는 유효하나 짝이 맞지 않는 괄호가 사용 되었기 때문에 유효하지 않다. 입력 각 테스트 케이스의 첫 번째 줄에는 테스트케이스의 길이가 주어지며, 바로 다음 줄에 테스트 케이스가 주어진다. 총 10개의 테스트케이스가 주어진다. 출력 #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 유효성 여부를 1 또는 0으로 표시한다 (1 .. 2021. 7. 30.
[JAVA] SWEA 1217번 거듭 제곱 문제 다음과 같이 두 개의 숫자 N, M이 주어질 때, N의 M 거듭제곱 값을 구하는 프로그램을 재귀호출을 이용하여 구현해 보아라. 2 5 = 2 X 2 X 2 X 2 X 2 = 32 3 6 = 3 X 3 X 3 X 3 X 3 X 3 = 729 제약 사항 총 10개의 테스트 케이스가 주어진다. 결과 값은 Integer 범위를 넘어가지 않는다. 입력 각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고 그 다음 줄에는 두 개의 숫자가 주어진다. 출력 #부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 테스트 케이스에 대한 답을 출력한다. 풀이 재귀를 통해 값을 계속해서 곱해 문제를 풀이하였다 import java.util.Scanner; public class 거듭제곱 { public .. 2021. 7. 30.
[JAVA] SWEA 1216번 회문2 문제 "기러기" 또는 "level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다. 주어진 100x100 평면 글자판에서 가로, 세로를 모두 보아 가장 긴 회문의 길이를 구하는 문제이다. 위와 같은 글자 판이 주어졌을 때, 길이가 가장 긴 회문은 붉은색 테두리로 표시된 7칸짜리 회문이다. 예시의 경우 설명을 위해 글자판의 크기가 100 x 100이 아닌 8 x 8으로 주어졌음에 주의한다. 제약 사항 각 칸의 들어가는 글자는 c언어 char type으로 주어지며 'A', 'B', 'C' 중 하나이다. 글자 판은 무조건 정사각형으로 주어진다. ABA도 회문이며, ABBA도 회문이다. A또한 길이 1짜리 회문이다. 가로, 세로 각각에 대해서 직선으로만.. 2021. 7. 30.