전체 글 (98) 썸네일형 리스트형 1158번: 요세푸스 문제(Java) Queue를 사용해 풀었다. 우선 필요한 변수를 선언하고 데이터를 입력받아 Queue에 넣는다. Queue queue = new LinkedList(); StringBuilder result = new StringBuilder(""); System.out.println(result); 결과 코드 import java.util.*; public class Main { public static void main(String[] args) { Queue queue = new LinkedList(); StringBuilder result = new StringBuilder(""); System.out.println(result); } } 11399번: ATM(Java) 정렬 문제이다. 정렬 후 P1, P1+P2, P1+P2+P3 ....... 을 모두 더하면 된다. 이걸 나열해 보면 if(n = 5) result = P1+ P1+P2+ P1+P2+P3+ P1+P2+P3+P4+ P1+P2+P3+P4+P5 가 되고 이것은 P1*n + P2*n-1 + P3*n-2 + P4*n-3 + P4*n-4 + P5*n-5 을 의미한다. 이걸 반복문으로 나타내면 다음과 같다. for(int i = 0; i 1406번: 에디터(Java) 처음에는 LinkedList로 간단하게 풀 수 있을 거라고 생각했다. BufferedReader와 LinkedList로 풀었는데 계속 시간 초과가 나왔다. 생각해 보니 시간복잡도가 O(n^2)이 나왔다. 시간복잡도를 O(n)으로 줄일 수 있는 방법이 무엇인지 고민하다가 Stack 두 개를 사용하면 삽입, 삭제를 O(1) 만에 할 수 있을 것 같아 Stack 두 개를 사용하기로 했다. left, right 라는 Stack을 두 개 만들고 우선 left에 모든 문자를 넣은 후 커서를 left의 top으로 잡았다. 커서가 왼쪽으로 갈 때마다 right에 left.pop()을 push 하고 커서가 오른쪽으로 갈 때는 left에 right.pop()을 push 하면 된다. BufferedReader br = ne.. 1269번: 대칭 차집합(Java) 집합의 원소는 중복되지 않는다. 따라서 HastSet을 사용했다. 우선 집합 A와 B를 HashSet으로 선언한 후, 입력을 받는다 Scanner scanner = new Scanner(System.in); int n = scanner.nextInt();//A 집합의 원소 수 int m = scanner.nextInt();//B 집합의 원소 수 HashSet A = new HashSet();//A집합 HashSet B = new HashSet();//B집합 int result = 0;//결과 //입력받는다 for(int i = 0; i 1620번: 나는야 포켓몬 마스터 이다솜(Java) 문제가 너무 길어서 핵심적인 부분만 올린다. 그냥 보기에는 HashMap을 사용해서 간단하게 할 수 있어 보였다. 하지만 시간초과가 5번 나오고 정신을 다시 차렸다. 시간복잡도를 줄이고 시간초과에서 벗어나기 위해 Scanner를 사용하던 기존 방식에서 BufferReader와 StringTokenizer를 사용한 방식으로 바꾸고. 시간복잡도를 O(n)으로 줄이기 위해 입력받은 문제가 정수인지 문자열인지 판별하기 위해 Exception을 사용했다. 또한 HashMap한 개를 사용하는 대신 HashMap와 HashMap을 사용해 데이터를 저장했다. 우선 입력을 받았다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Stri.. 이전 1 ··· 13 14 15 16 17 18 19 20 다음