분류 전체보기
-
[백준/JAVA] 11659번 구간 합 구하기 4 - 구간 합(Prefix Sum)ETC/Algorithm 2023. 6. 9. 09:49
풀이 구간 합을 미리 구한다. 일일이 구하게 되면 시간초과다. sum[n] = sum[n-1] + arr[i] 를 통해 미리 값들을 구해둔다. 코드 제출 코드 import java.io.*; import java.util.*; class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; st = new StringTokenizer(br.r..
-
[백준/JAVA] 9375번 패션왕 신해빈 - HashMap, 조합ETC/Algorithm 2023. 6. 9. 09:47
풀이 옷의 종류의 개수를 센다. HashMap 을 사용하여, 예를 들어 키:"모자" 값:2 형식으로 옷의 종류를 키값으로, 값에 같은 종류의 개수를 저장한다. 안 입은 경우도 포함한다. 조합을 사용하여 계산하는데, 안입은 경우도 포함한다. 대신 알몸인 경우를 제외해야 하므로 결과값에 -1을 해준다. 코드 제출 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWrit..
-
[백준/JAVA] 11721번 열 개씩 끊어 출력하기 - 문자열ETC/Algorithm 2023. 6. 9. 09:41
풀이 substring 사용 substring(시작점, 시작점+10)을 통해 10개의 문자를 파싱한다. 시작점은? 미리 문자열을 10으로 나눠서 몫 만큼 반복한다. idx는 0부터 시작하되, 다음 줄부터는 10씩 증가한다. 코드 제출 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringBuilder sb = new ..
-
[백준/JAVA] 1107번 리모컨 - BruteForceETC/Algorithm 2023. 6. 9. 09:38
풀이 고장난 버튼 저장 방식 고장난 버튼을 미리 저장해둔다. 나중에 입력된 버튼이 고장난 버튼인지 찾기 위해서 for문을 돌리는 순간, 시간초과 확정이다. 이를 위해서 고장난 버튼을 boolean 형으로 저장한다. 입력된 버튼 파싱 방법 %10을 하면 입력된 버튼의 값이 /10을 하면 다음 버튼의 값이 1의 자릿수로 설정되고 이를 %10하면 버튼의 값이 무엇인지 알 수 있다. 원하는 채널 중에 가장 근삿값은? 초기 채널은 100번이다. 앞으로 4000번을 틀기 위해서 10개의 버튼이 모두 고장나있는 경우 3900번을 눌러야 한다는 의미이다. 여기서 3900번과 내가 임의로 값을 지정해서 그 입력할 값에 이상이 있는지 없는지를 판단하고 위에서 3900번과 비교를 한다. 이미 N-100을 진행했으므로, 0과..
-
[백준/JAVA] 5430번 AC - Deque, 문자열 파싱ETC/Algorithm 2023. 6. 9. 09:28
문제 풀이 자바의 Deque 컬렉션을 사용하여 문제를 풀이하였다. 문제의 요점인 방향성을 제어하기 위해 way라는 변수를 사용하였고, 입력값이 [ ] ,(반점) 3개의 특수문자로 감싸져 있기 때문에 StringTokenizer로 문자열을 파싱해줬다. 코드 제출 코드 import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Sy..
-
[백준/JAVA] 14888번 연산자 끼워넣기 - BruteForce, 백 트랙킹ETC/Algorithm 2023. 6. 9. 09:21
문제 풀이 DFS를 재귀형식으로 구현하여, 모든 연산자의 경우의 수로 계속 반복하고 마지막 연산이 될 경우 값을 저장하여 최대 최소를 비교하였다. 한번의 재귀가 끝나면 진행되었던 연산자의 개수는 복구시켜야 다른 재귀가 영향을 받지 않는다. 코드 제출 코드 import java.io.; import java.util.; class Main { static int MAX = Integer.MIN_VALUE; static int MIN = Integer.MAX_VALUE; static int N; static int[] arr; static int[] ops; public static void main(String[] args) throws IOException { BufferedReader br = new ..
-
[백준/JAVA] 11726번 2xN 타일링 - DPETC/Algorithm 2023. 6. 9. 09:13
문제 2xN의 타일을 채워라 세로로 2칸, 가로로 2칸인 타일을 통해 2*N의 타일을 채우는 문제이다. 풀이 조건 1007로 나눈 나머지를 저장해야한다. DP 미리 값을 저장해두고 원하는 값을 불러오면 된다. 점화식 설정 경우의 수를 모두 작성해보고 규칙을 찾아보면 앞의 2개의 합이 지금의 값과 같다. 따라서 점화식은 dp[n] = dp[n-1] + dp[n-2] 이다. 즉, 점화식 시작은 3부터 시작한다. 코드 제출 코드 import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System...
-
[백준/JAVA] 11758번 CCW - 기하학ETC/Algorithm 2023. 6. 9. 09:03
문제 CCW(Counter Clock Wise) 알고리즘 기하학을 마스터 한 것이 아니라 https://snowfleur.tistory.com/98 에서 참고하여 풀이하였다. 코드 제출 코드 import java.io.*; import java.util.*; class Main { static int[][] arr = new int[3][2]; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.o..