반응형

백준/구현 8

[백준] 17140 : 이차원 배열과 연산 (JAVA)

https://www.acmicpc.net/problem/17140 [풀이과정]Node class가 Comparable 인터페이스를 상속하게 함.PriorityQueue를 사용해서 정렬해가며 배열 재구성 [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;import java.util.PriorityQueue;import java.util.StringTokenizer;/*크기가 3X3인 배열 A1. R연산 : 배열 A의 모든 행에 대해 정렬 수행. 행의 개수 >= 열의 개수인 경우 적용2. C연산 : 배열 A..

백준/구현 2024.12.07

[백준] 1043 : 거짓말 (JAVA, Union-find)

https://www.acmicpc.net/problem/1043 [풀이과정]예시를 꼭 봐야 문제 이해가 가능한 문제였다.결국은진실을 아는 사람이 한 명이라도 있으면 해당 파티의 참석자는 모두 진실을 안다고 가정하기-> 파티 참석 순서 상관없음.이 조건이었고, 정석적인 유니온 파인드 문제였다. 진실을 아는 사람들과 같은 파티에 참석한 사람들을 모두 같은 그룹으로 묶어주며 진행했다. [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.List;import java.util.StringTokenizer;/*진실을 아..

백준/구현 2024.10.11

[백준] 1700 : 멀티탭 스케줄링 (JAVA)

https://www.acmicpc.net/problem/1700 [풀이과정]1. 멀티탭의 공간이 남아있을 때 2. 멀티탭의 공간이 남아있지 않을 때•  뒷 순서의 기기 중 현재 사용 중인 기기 저장하기 (willUse)2-2. willUse가 N의 크기와 다르면 == 현재 사용 중인 것 중 나중에 사용되는 게 없다는 뜻• willUSe에 없는 기기 삭제하기2-3. willUSe가 N의 크기와 같으면 == 현재 사용 중인 것 모두 나중에 사용된다는 뜻.• "그리디 알고리즘" 으로 제일 마지막 (willUse에 가장 마지막에 추가된) 순서의 기기를 뺌 [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream..

백준/구현 2024.10.03

[백준] 1202 : 보석도둑 (JAVA)

https://www.acmicpc.net/problem/1202 [풀이과정]가방에 들어가는 보석 중 가장 비싼 걸 넣으면 된다.탐색시간을 줄이는 게 가장 중요해보였다. 그리고 최대값이 30억이었기 때문에 long 타입 사용해줬다.먼저 우선순위 큐로 보석, 가방, 가방에 들어가는 보석까 세 개를 정렬해서 사용했다. [시간 복잡도]PriorityQueue의 add, poll의 시간 복잡도는 O(log⁡ n), peek는 O(1) O(N logN) : 보석 정렬O(K log⁡K) : 가방 정렬O(K⋅log⁡N) : 각 가방에 대해 보석을 추가하고 가장 비싼 보석을 꺼내는 과정  [코드]import java.io.BufferedReader;import java.io.IOException;import java...

백준/구현 2024.10.03

[백준] 15961 : 회전초밥 (JAVA)

https://www.acmicpc.net/problem/15961 [풀이과정]회전초밥이기 때문에 마지막에 다시 처음 부분의 초밥을 먹는다는 걸 고려하지 못 해서 한 번 틀렸다.마지막에 처음 부분의 초밥을 먹을 때1. 인덱스를 계산해서 먹기sushi[(n + K - 1) % N]2. K개만큼의 처음부분 초밥을 배열 뒤에 이어붙이기sushi[N + K] 둘의 성능차이는 없었지만 변수 크기가 커진다면 1번 방식이 성능이 더 좋을 것이다. [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;/*1. 한 위치부터 k개의 접시를 연속해서 먹..

백준/구현 2024.09.27

[백준] 5430 : AC (JAVA)

https://www.acmicpc.net/problem/5430 [풀이과정]처음엔 D가 나올 때까지 R의 개수를 세서, %2값이 1일 때만 뒤집는 연산을 수행했다. 당연히 시간초과가 났다.그냥 뒤집은 상태라고 하면 뒤에서부터 출력하면 되는 문제였다.Deque을 사용했고 뒤집은 상태인지 아닌지 구분해줄 변수를 사용했다. [코드]import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;/*R - 순서를 뒤집는 함수D - 첫 번째 수를 버리는 함수, 배열이 비어있을 때 사용되면 에러함수를 조합하여 한 번에 사용최종 결과 구하기 */public class Main { ..

백준/구현 2024.09.26

[백준] 30023 : 전구 상태 바꾸기

https://www.acmicpc.net/problem/30023 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;/*N개의 전구가 일렬로 세워져 빨, 초, 파 중 하나의 색으로 빛나고 있음.연속한 세 전구를 선택하여 상태를 바꿀 수 있음.빨 -> 초, 초 -> 파, 파 -> 빨모든 전구가 같은 색으로 빛나게 하려면 이 과정을 최소 몇 번 수행해야 하는지 구해라. */public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

백준/구현 2024.09.02

[백준] 14499 : 주사위 굴리기

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net package com.ssafy.algoStudy.BJ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; /*..

백준/구현 2023.09.08
반응형