Java 27

백준 1158번: 요세푸스 문제

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 접근법: LinkedList()에 1~N만큼 넣고, list size가 0이 될 떄까지 인덱스 값을 특정하여 값을 지우면서 출력함 인덱스 계산하는게 마음대로 되지 않아, 생각보다 오래 걸림.. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[..

Java 2023.03.18

백준 26008번: 해시 해킹 문제

https://www.acmicpc.net/problem/26008 26008번: 해시 해킹 첫째 줄에 비밀번호의 길이 $N$과 문자 종류의 개수 $M$, 정수 $A$가 주어진다. ($1 \le N, M, A \le 5\,000\,000$) 둘째 줄에 재현이가 알아낸 해시값 정수 $H$가 주어진다. ($0 \le H < M$) www.acmicpc.net 풀이 접근법 : 처음 문제를 봤을 때 아래 식을 보고 N, M , A 값을 받아 for문을 돌려 입력으로 주어진 해쉬값만 비교해보려고 했었는데, 입력으로 들어오는 값이 500000인 것을 보고, mod 연산을 사용해 식을 줄일 수 있지 않을까를 생각하였다. 입력 값을 가지고 테스를 해보니 mod 연산이 분배 법칙이 되는거까지는 파악했지만.... 더 이상..

Java 2023.03.16

[Java] 백준 10818번: 최소, 최대

https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 접근법 : 값 하나씩 받아와 for문으로 돌려 최소, 최대 값을 구한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; import java.util.StringTokenizer; public clas..

Java 2023.03.15

백준 1021번: 회전하는 큐

https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 풀이 접근법 : 1~N 까지 queue에서 target을 찾을 때 까지 leftshift, rightshift 하여 count를 하나씩 증가한다. deque로 구현하여 start와 end에서 데이터를 뽑아서 shift 할 수 있음 Index를 편하게 구하는 방법을 알지 못해, 0부터 peek()함수로 비교하면서 index를 구함 import java.io.BufferedReader; impor..

Java 2023.03.14

백준 25556번: 포스택 문제

https://www.acmicpc.net/problem/25556 25556번: 포스택 포닉스가 순열을 청소할 수 있으면 YES, 불가능하다면 NO를 출력한다. www.acmicpc.net 입력 예시 1) 10 4 3 6 7 8 9 10 2 1 5 --> YES 입력 예시 2) 5 5 4 3 2 1 --> NO 나의 해결법 생각 : 앞에 들어온 숫자 > 뒤에 들어온 숫자일 때 cnt(=0)가 하나씩 증가하여 cnt 가 3보다 클 경우 문제에서 제시하는 순열을 청소할 수 없다고 생각함 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenize..

Java 2023.03.14

[Java] HahsMap, key or value 오름차순, 내림차순

목적 : HashMap으로 데이터를 메모리에 저장한 후 key와 value 값에 따라 오름차순, 내림차순으로 정렬하고 더 나아가 원하는 방법으로 정렬하기 위해서 Collections.sort 함수 내에 함수를 넣어본다. HashMap은 Java 내에서 Map 인터페이스로 구현된 클래스이며, Key : value로 구성된 데이터 형태이다. Key와 value는 원하는 형태로 넣을 수 있고, 예시로는 아래처럼 선언하면 된다. HashMap map = new HashMap(); HashMap map = new HashMap(); HashMap map = new HashMap(); HashMap map = new HashMap(); 선언된 HashMap 내에서 Key는 중복될 수 없고, 동일한 key로 valu..

Java 2023.03.07

[Java] 자주 보는 형 변환

목적 : 코딩 테스트 문제를 풀면서 [], List, int, String 등 여러 형에 대해서 답안을 제출하거나 알려진 함수에 넣어야 할 때 변환해야 하는 경우가 있어, 정리해보려고 한다. 1. Int --> String int = Integer.parseInt(String) // example String number = "100"; int num = Integer.parseInt(number); // int형 100 2. String --> Int String Integer.toString(Int) // example int number = 100; String num = Integer.toString(number); 3. int[] --> String String Arrays.toString(in..

Java 2023.03.04