hye-log

[SWEA]1228번 암호문1(JAVA) 본문

CodingTest/SWEA

[SWEA]1228번 암호문1(JAVA)

iihye_ 2023. 8. 8. 00:14

0. 문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

1. 문제 설명

1) 원본 암호문이 주어졌을 때 명령어에 따라 암호문에 숫자를 덧붙임

2) I x y s : x의 위치 바로 다음에 y개의 숫자 s를 삽입함

 

2. 입출력

// input
11
449047 855428 425117 532416 358612 929816 313459 311433 472478 589139 568205
7
I 1 5 400905 139831 966064 336948 119288 I 8 6 436704 702451 762737 557561 810021 771706 I 3 8 389953 706628 552108 238749 661021 498160 493414 377808 I 13 4 237017 301569 243869 252994 I 3 4 408347 618608 822798 370982 I 8 2 424216 356268 I 4 10 512816 992679 693002 835918 768525 949227 628969 521945 839380 479976

// output
#1 449047 400905 139831 408347 512816 992679 693002 835918 768525 949227

 

3. 코드

import java.io.*;
import java.util.*;

public class swea1228 {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = null;
		int T = 10;
		for(int t = 1; t <= T; t++) {
			// 원본 암호문의 길이
			int N = Integer.parseInt(br.readLine());
			// 원본 암호문
			ArrayList<String> origin = new ArrayList<String>();
			st = new StringTokenizer(br.readLine());
			for(int n = 0; n < N; n++) {
				origin.add(st.nextToken());
			}
			// 명령어의 개수
			int C = Integer.parseInt(br.readLine());
			// 명령어
			st = new StringTokenizer(br.readLine());
			for(int n = 0; n < C; n++) {
				st.nextToken(); // I
				int index = Integer.parseInt(st.nextToken()); // 삽입할 위치
				int nums = Integer.parseInt(st.nextToken()); //  삽입할 숫자의 개수
				for(int c = 0; c < nums; c++) { // 삽입할 숫자
					String temp = st.nextToken();
					origin.add(index + c, temp);
				}
			}
			
			// 출력
			System.out.print("#" + t + " ");
			for(int i = 0; i < 10; i++) {
				System.out.print(origin.get(i) + " ");
			}
			System.out.println();
			
		}
	}
}

 

실행 결과

 

4. 회고

1) 원본 암호문을 ArrayList로 정의하여 추가할 명령어를 add로 덧붙이는 방식으로 해결

 

 

5. Github

https://github.com/iihye/Algorithm/blob/main/SWEA/swea1228.java

728x90

'CodingTest > SWEA' 카테고리의 다른 글

[SWEA]7699번 수지의 수지 맞는 여행(JAVA)  (0) 2023.08.09
[SWEA]1952번 수영장(JAVA)  (0) 2023.08.08
[SWEA]1209번 Sum(JAVA)  (0) 2023.08.07
[SWEA]1247번 최적 경로(JAVA)  (0) 2023.08.07
[SWEA]1225번 암호생성기(JAVA)  (0) 2023.08.07
Comments