AngelPlayer`s Diary

링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD&categoryId=AV14w-rKAHACFAYD&categoryType=CODE&problemTitle=1228&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

SW Expert Academy

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

swexpertacademy.com

 

 

 

문제 해석

- 각 테스트 케이스 별
첫 번째 줄 : N 원본 암호문 길이
두 번째 줄 : 원본 암호문
세 번째 줄 : M 명령어 개수
네 번째 줄 : 명령어

명령어 : | x, y, s
x : 삽입할 위치 
y : 삽입할 숫자 개수
s : 덧붙일 숫자

 

 

 

코드

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

public class Solution {
	public static void main(String[] args) throws Exception {
//		System.setIn(new FileInputStream("res/1228/input.txt"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		StringBuilder sb = new StringBuilder();
		
		
//		int T = Integer.parseInt(st.nextToken());
		for(int test_case = 1; test_case <= 10; test_case++) {
			// 첫 번째 줄
			st = new StringTokenizer(br.readLine());
			int N = Integer.parseInt(st.nextToken());
			
			// 두 번째 줄
			st = new StringTokenizer(br.readLine());
			LinkedList<Integer> list = new LinkedList<>();
			
			for (int i = 0; i < N; i++) {
				list.add(Integer.parseInt(st.nextToken()));
			}
			
			// 세 번째 줄
			st = new StringTokenizer(br.readLine());
			int M = Integer.parseInt(st.nextToken()); // 명령어 개수
			
			// 네 번째 줄
			st = new StringTokenizer(br.readLine());
			for (int i = 0; i < M; i++) {
				st.nextToken(); // | 빼기
				int x = Integer.parseInt(st.nextToken()); // 삽입할 위치
				int y = Integer.parseInt(st.nextToken()); // 삽입할 개수
				
				for (int j = x; j < x + y; j++) {
					if (j != 10) {
						list.add(j, Integer.parseInt(st.nextToken()));
						continue;
					}
					st.nextToken();
				}
			}
			sb.append("#" + test_case + " ");
			for (int i = 0; i < 10; i++) {
				sb.append(list.get(i) +" ");
			}
			sb.append("\n");
		} // [E] test_case
		System.out.println(sb);
	}
}

 

 

 

코드 해석

단순한 구현문제입니다.

 

암호 사이에 값을 입력하기 때문에 LinkedList를 사용하여 중간에 삽입이 일어나도록 구현하였습니다.

 

출력이 최대 10개까지만 진행되므로, 추가적인 입력이 10 이상 된다면 List에 add하는 연산이 일어나지 않도록 하였습니다.

 

 

 

발생한 문제 & 해결 방안

~~

 

 

 

 

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band