본문 바로가기

Java60

[JAVA] SWEA 1231번 중위순회 문제 다음은 특정 단어(또는 문장)를 트리 형태로 구성한 것으로, in-order 형식으로 순회하여 각 노드를 읽으면 원래 단어를 알 수 있다고 한다. 위 트리를 in-order 형식으로 순회할 경우 SOFTWARE 라는 단어를 읽을 수 있다. 제약 사항 총 10개의 테스트 케이스가 주어진다. 총 노드의 개수는 100개를 넘어가지 않는다. 트리는 완전 이진 트리 형식으로 주어지며, 노드당 하나의 알파벳만 저장할 수 있다. 노드가 주어지는 순서는 아래 그림과 같은 숫자 번호대로 주어진다. 입력 각 테스트 케이스의 첫 줄에는 각 케이스의 트리가 갖는 정점의 총 수 N(1≤N≤100)이 주어진다. 그 다음 N줄에 걸쳐 각각의 정점 정보가 주어진다. 해당 정점에 대한 정보는 해당 정점의 알파벳, 해당 정점의 왼.. 2021. 8. 3.
[JAVA] SWEA 1238번 Contact 문제 비상연락망과 연락을 시작하는 당번에 대한 정보가 주어질 때, 가장 나중에 연락을 받게 되는 사람 중 번호가 가장 큰 사람을 구하는 함수를 작성하시오. 예시 아래는 비상연락망을 나타낸 그림이다. 각 원은 개개인을 의미하며, 원 안의 숫자는 그사람의 번호를 나타내고 빨간원은 연락을 시작하는 당번을 의미한다. 화살표는 연락이 가능한 방향을 의미한다. 위의 예시에서는 7번과 1번은 서로 연락이 가능하다, 하지만 2번과 7번의 경우 2번은 7번에게 연락할 수 있지만 7번은 2번에게 연락할 수 없다. 비상연락망이 가동되면 아래 그림과 같이 연락을 시작하는 당번인 2번은 연락 가능한 7번과 15번에 동시에 연락을 취한다 (다자 간 통화를 사용한다고 가정). 그 다음 아래와 같이 7번은 1번에게, 15번은 4번에.. 2021. 8. 2.
[JAVA] SWEA 1226번 미로1 문제 아래 그림과 같은 미로가 있다. 16*16 행렬의 형태로 만들어진 미로에서 흰색 바탕은 길, 노란색 바탕은 벽을 나타낸다. 가장 좌상단에 있는 칸을 (0, 0)의 기준으로 하여, 가로방향을 x 방향, 세로방향을 y 방향이라고 할 때, 미로의 시작점은 (1, 1)이고 도착점은 (13, 13)이다. 주어진 미로의 출발점으로부터 도착지점까지 갈 수 있는 길이 있는지 판단하는 프로그램을 작성하라. 아래의 예시에서는 도달 가능하다. 아래의 예시에서는 출발점이 (1, 1)이고, 도착점이 (11, 11)이며 도달이 불가능하다. 입력 각 테스트 케이스의 첫 번째 줄에는 테스트 케이스의 번호가 주어지며, 바로 다음 줄에 테스트 케이스가 주어진다. 총 10개의 테스트케이스가 주어진다. 테스트 케이스에서 1은 벽을 나.. 2021. 8. 2.
[JAVA] SWEA 1225번 암호생성기 문제 다음 주어진 조건에 따라 n개의 수를 처리하면 8자리의 암호를 생성할 수 있다. - 8개의 숫자를 입력 받는다. - 첫 번째 숫자를 1 감소한 뒤, 맨 뒤로 보낸다. 다음 첫 번째 수는 2 감소한 뒤 맨 뒤로, 그 다음 첫 번째 수는 3을 감소하고 맨 뒤로, 그 다음 수는 4, 그 다음 수는 5를 감소한다. 이와 같은 작업을 한 사이클이라 한다. - 숫자가 감소할 때 0보다 작아지는 경우 0으로 유지되며, 프로그램은 종료된다. 이 때의 8자리의 숫자 값이 암호가 된다. [1 사이클] [암호 도출] 제약 사항 주어지는 각 수는 integer 범위를 넘지 않는다. 마지막 암호 배열은 모두 한 자리 수로 구성되어 있다. 입력 각 테스트 케이스의 첫 줄에는 테스트 케이스의 번호가 주어지고, 그 다음 줄에는.. 2021. 8. 2.
[JAVA] SWEA 1267번 작업순서 문제 해야 할 V개의 작업이 있다. 이들 중에 어떤 작업은 특정 작업이 끝나야 시작할 수 있으며, 이를 선행 관계라 하자. 이런 작업의 선행 관계를 나타낸 그래프가 주어진다. 이 그래프에서 각 작업은 하나씩의 정점으로 표시되고 선행 관계는 방향성을 가진 간선으로 표현된다. 단, 이 그래프에서 사이클은 존재하지 않는다 (사이클은 한 정점에서 시작해서 같은 정점으로 돌아오는 경로를 말한다). 아래 그림은 이런 그래프의 한 예다. 이 그래프에서 작업 1은 작업 4가 끝나야 시작할 수 있다. 작업 6은 작업 5와 작업 7이 끝나야 할 수 있다. 이 그래프에서는 사이클이 없다. 김과장은 선행 관계가 주어진 작업군을 한 번에 하나의 작업씩 처리해서 다 끝내려 한다. 위에서 예를 든 작업군에 대해서 이런 일을 한다면.. 2021. 8. 2.
[JAVA] SWEA 1234번 비밀번호 문제 평소에 잔머리가 발달하고 게으른 철수는 비밀번호를 기억하는 것이 너무 귀찮았습니다. 적어서 가지고 다니고 싶지만 누가 볼까봐 걱정입니다. 한가지 생각을 해냅니다. 0~9로 이루어진 번호 문자열에서 같은 번호로 붙어있는 쌍들을 소거하고 남은 번호를 비밀번호로 만드는 것입니다. 번호 쌍이 소거되고 소거된 번호 쌍의 좌우 번호가 같은 번호이면 또 소거 할 수 있습니다. 예를 들어 아래의 번호 열을 철수의 방법으로 소거하고 알아낸 비밀 번호입니다. 입력 10개의 테스트 케이스가 10줄에 걸쳐, 한 줄에 테스트 케이스 하나씩 제공된다. 각 테스트 케이스는 우선 문자열이 포함하는 문자의 총 수가 주어지고, 공백을 둔 다음 번호 문자열이 공백 없이 제공된다. 문자열은 0~9로 구성되며 문자열의 길이 N은 10≤.. 2021. 8. 2.