SSAFY/SWEA

[SWEA] 1228 : 암호문 1

믕비 2023. 4. 26. 16:19
반응형

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AV6kld8aisgDFASb&contestProbId=AV14w-rKAHACFAYD&probBoxId=AV-4MojKLNADFATz&type=PROBLEM&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 

 

SW Expert Academy

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

swexpertacademy.com

명령문의 첫번째 요소를 String으로 받을 때와 char로 받을 때 실행시간의 차이는 없었지만 메모리 사용량이 생각보다 큰 차이를 보였다. char을 사용했을 때 10,000 KB 정도의 메모리를 절약할 수 있었음.

 

내 코드

메모리 : 18656 KB

실행시간 : 108 ms

코드길이 : 1423 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 testcase = 1; testcase <= 10; testcase++) {
			sb.append('#').append(testcase).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(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);
				String first = st.nextToken();
				if(first.equals("I")) {
					//x 위치 바로 뒤에
					int x = Integer.parseInt(st.nextToken());
					//y개의 숫자 삽입
					int y = Integer.parseInt(st.nextToken());
					//덧붙일 숫자들
					for(int s = x; s < x + y; s++) {
						list.add(s, 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] 1230 : 암호문 3  (0) 2023.04.26
[SWEA] 1229 : 암호문 2  (0) 2023.04.26
[SWEA] 1234 : 비밀번호  (0) 2023.04.26
[SWEA] 1298 : 원재의 메모리 복구하기  (0) 2023.04.17
[SWEA] 1206 : View  (0) 2023.04.17