0 ~ 999999 사이의 수로 표현되는 암호문이 있고, 이 암호문을 N개 모아 놓은 암호문 뭉치가 있다.
암호문 뭉치를 급히 수정해야 할 일이 발생했는데, 다음과 같이 3개의 명령어로 제어한다.
위의 규칙에 맞게 작성된 명령어를 나열하여 만든 문자열이 주어졌을 때, 암호문 뭉치를 수정하고, 수정된 결과의 처음 10개 암호문을 출력하는 문제
LinkedList 를 활용해 문제를 풀었다.
LinkedList 를 활용한 여러 문제들을 더 풀어볼 계획이다.
import java.util.Scanner;
import java.io.FileInputStream;
import java.util.List;
import java.util.LinkedList;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = 10;
for(int test_case = 1; test_case <= T; test_case++)
{
int N = sc.nextInt();
List<Integer> list = new LinkedList<>();
for (int i = 0; i < N; i++) {
list.add(sc.nextInt());
}
int commandCount = sc.nextInt();
for (int i = 0; i < commandCount; i++) {
String command = sc.next();
switch (command) {
case "I":
int x = sc.nextInt();
int y = sc.nextInt();
for (int j = 0; j < y; j++) {
list.add(x + j, sc.nextInt());
}
break;
case "D":
x = sc.nextInt();
y = sc.nextInt();
for (int j = 0; j < y; j++) {
list.remove(x);
}
break;
case "A":
y = sc.nextInt();
for (int j = 0; j < y; j++) {
list.add(sc.nextInt());
}
break;
}
}
System.out.print("#" + test_case + " ");
for (int i = 0; i < 10 && i < list.size(); i++) {
System.out.print(list.get(i) + " ");
}
System.out.println();
}
}
}
Java소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…
해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…
LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…
ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…
제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…