-
1228. [S/W 문제해결 기본] 8일차 - 암호문1 - 자바(JAVA)알고리즘/SW Expert Academy 2022. 3. 8. 00:01
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD
문제해석
원본 암호를 수정하고자 합니다.
암호를 수정하기 위해서는 특수 제작된 처리기로만 수정할 수 있습니다.
이 처리기는 다음과 같은 기능을 1개 제공합니다.
기능
I(삽입) x, y, s
I는 삽입을 의미하며 x의 위치 바로 다음에 y개의 숫자를 삽입합니다.
s는 덧붙일 숫자들입니다.
예시) I 3 2 123152 487651
입력
첫번째 줄 : 원본 암호문의 길이 N
두 번째 줄 : 원본 암호문
세 번째 줄 : 명령어의 개수
네 번째 줄 : 명령어
출력
#기호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 수정된 암호문의 처음 10개 항을 출력한다.
문제 풀이 전 설계
index를 입력받고 해당 index이후에 차례로 암호문을 삽입해야 합니다.
따라서 ArrayList를 사용하면 중간에 삽입을 하게되면 순차적으로 나머지 요소들이 밀려야 하므로 LinkedList 자료구조를 선택하여 구현하였습니다.
코드
package day0208; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.List; import java.util.StringTokenizer; public class Solution_1228_암호문1 { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); for (int testCase = 1; testCase <= 10; testCase++) { List<Integer> passwordList = new LinkedList<Integer>(); int length = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine(), " "); for (int i = 0; i < length; i++) { passwordList.add(Integer.parseInt(st.nextToken())); } int operationCount = Integer.parseInt(br.readLine()); st = new StringTokenizer(br.readLine(), " "); for (int i = 0; i < operationCount; i++) { // 명령어 I제거 st.nextToken(); int x = Integer.parseInt(st.nextToken()); int y = Integer.parseInt(st.nextToken()); for (int j = 0; j < y; j++) { passwordList.add(x + j, Integer.parseInt(st.nextToken())); } } sb.append("#" + testCase + " "); for (int i = 0; i <= 9; i++) { sb.append(passwordList.get(i) + " "); } sb.append("\n"); } System.out.println(sb.toString()); } }
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
1861. 정사각형 방 - 자바(JAVA) (0) 2022.03.11 9229. 한빈이와 Spot Mart - 자바(JAVA) (0) 2022.03.10 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) 2022.03.07 5215. 햄버거 다이어트 (0) 2022.03.03 1940. 가랏! RC카! (0) 2022.02.24