SSAFY/SWEA

[SWEA] 1230 : 암호문 3

믕비 2023. 4. 26. 20:13
반응형

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?contestProbId=AV14zIwqAHwCFAYD&solveclubId=AV6kld8aisgDFASb&problemBoxTitle=%5BD2~D3+%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4%5D+%EA%B8%B0%EC%B4%88+%EB%8B%A4%EC%A7%80%EA%B8%B0+Part4&problemBoxCnt=14&probBoxId=AV-4MojKLNADFATz 

 

SW Expert Academy

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

swexpertacademy.com

명령문을 구분할 때 switch문과 if문 두 가지 방법을 사용하였는데 둘 다 큰 차이는 없었다. if문이 메모리를 조금 더 썼고 switch문이 시간이 조금 더 걸렸다.

 

내 코드

메모리 : 32560 KB

시간 : 173 ms

코드길이 : 1630 B

 

[내 코드]

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 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		for(int T = 1; T <= 10; T++) {
			sb.append('#').append(T).append(' ');
			
			List<Integer> list = new LinkedList<>();
			//1.
			int N = Integer.parseInt(br.readLine());
			//2.
			st = new StringTokenizer(br.readLine());
			for(int n = 0; n < N; n++) {
				list.add(n, Integer.parseInt(st.nextToken()));
			}
			//3.
			int order = Integer.parseInt(br.readLine());
			//4.
			st = new StringTokenizer(br.readLine());
			for(int o = 0; o < order; o++) {
				char first = st.nextToken().charAt(0);
				
				if(first == 'I'){
					int x = Integer.parseInt(st.nextToken());
					int y = Integer.parseInt(st.nextToken());
					for(int s = x; s < x + y; s++) {
						list.add(s, Integer.parseInt(st.nextToken()));
					}
				}
				if(first == 'D') {
					int x1 = Integer.parseInt(st.nextToken());
					int y1 = Integer.parseInt(st.nextToken());
					for(int d = 0; d < y1; d++) {
						list.remove(x1);
					}
				}
				if(first == 'A') {
					int y2 = Integer.parseInt(st.nextToken());
					for(int a = 0; a < y2; a++) {
						list.add(Integer.parseInt(st.nextToken()));
					}
				}
			}
			for(int i = 0; i < 10; i++) {
				sb.append(list.get(i)).append(' ');
			}
			sb.append('\n');
		}
		System.out.print(sb);
	}

}
반응형

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

[SWEA] 1244 : 최대 상금  (0) 2023.04.26
[SWEA] 1215 : 회문 1  (0) 2023.04.26
[SWEA] 1229 : 암호문 2  (0) 2023.04.26
[SWEA] 1228 : 암호문 1  (0) 2023.04.26
[SWEA] 1234 : 비밀번호  (0) 2023.04.26