반응형
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 |