Problem Solving
[백준, BOJ 2075] N번째 큰 수 (java)
https://www.acmicpc.net/problem/2075메모리: 218,476 KB , 시간: 652 ms사용 알고리즘: 자료 구조, 우선순위 큐, 정렬모든 수는 자신의 한 칸 위에 있는 수보다 크기 때문에한 번에 $N * N$개의 수를 정렬할 필요 없이가장 밑 줄에 있는 수들만 우선순위 큐를 사용해 정렬한 후가장 큰 수를 빼고, 그 수와 같은 행에 있는 바로 위 수를 큐에 넣어준다.import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.PriorityQueue;import java.util.StringTokenizer;public class Main { public static void main(Str..
[백준, BOJ 2805] 나무 자르기 (java)
https://www.acmicpc.net/problem/2805메모리: 119,416 KB , 시간: 492 ms사용 알고리즘: 이분 탐색, 매개 변수 탐색import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; st = new StringToke..
[프로그래머스, 161989] 덧칠하기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 85.7 MB, 시간: 1.79 ms사용 알고리즘: 구현 class Solution { public int solution(int n, int m, int[] section) { int answer = 0; // 페인트 한 번 칠했을 때, 롤러가 끝나는 위치 int endOfRoller = 0; for(int i = 0; ..
[백준, BOJ 12605] 단어순서 뒤집기 (java)
https://www.acmicpc.net/problem/12605메모리: 14,168KB , 시간: 96 ms사용 알고리즘: 자료 구조, 파싱, 스택, 문자열import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; ..
[백준, BOJ 27434] 팩토리얼 3 (java)
https://www.acmicpc.net/problem/27434메모리: 393,188 KB , 시간: 2,960 ms사용 알고리즘: 큰 수 연산, 사칙연산, 수학Java에서는 long 타입으로도 오버 플로우가 발생하기 때문에, 기본 자료형을 사용할 수 없다.때문에 BigInteger라는 것을 사용해야 한다. BigInteger에서 곱셈 연산을 하기 위해서는 BigInteger 객체의 multiply라는 메소드를 사용해야 하고,이 메소드는 파라미터로 곱하고자 하는 수를 나타내는 BigInteger 객체를 받는다. 때문에 $N!$을 계산하기 위해 N번의 BigInteger 객체를 생성하고 곱하는 과정에서 시간초과가 난다.시간초과를 해결하기 위해서는 BigInteger 생성 횟수를 줄여야 하고,분할 정복을..
[백준, BOJ 7795] 먹을 것인가 먹힐 것인가 (java)
https://www.acmicpc.net/problem/7795메모리: 38740 KB , 시간: 384 ms사용 알고리즘: 정렬import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Arrays;import java.util.StringTokenizer;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; StringBuil..
[백준, BOJ 10773] 제로 (java)
https://www.acmicpc.net/problem/10773메모리: 23,064 KB , 시간: 200 ms사용 알고리즘: 자료 구조, 구현, 스택import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stack;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int K = Integer.parseInt(br.readLine()); // 재민이가 부르..
[백준, BOJ 2607] 비슷한 단어 (java)
https://www.acmicpc.net/problem/2607메모리: 14,132 KB , 시간: 100 ms사용 알고리즘: 구현, 문자열import java.io.BufferedReader;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); // 기준이 되는 문자열 char[] first = br.r..
[프로그래머스, 64062] 징검다리 건너기 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 67.1 MB, 시간: 92.76 ms사용 알고리즘: 우선순위 큐, 그리디 알고리즘 건널 수 있는 친구들은 모두 건너고, 마지막 친구가 건너는 상황이라고 가정현재 위치 point에서 k칸 내에 있는 디딤돌 중, 가장 숫자가 큰 디딤돌로 이동징검다리를 건널 때까지 항상 범위 내 가장 숫자가 큰 디딤돌로 이동한다.밟은 디딤돌 중 숫자가 가장 작은 디딤돌이 사라지면, 더 이상 다른 친구가 건널 수 ..
[프로그래머스, 12985] 예상 대진표 (java)
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr메모리: 74.8 MB, 시간: 0.03 ms사용 알고리즘: 트리 class Solution{ public int solution(int n, int a, int b) { int answer = 1; while(a / 2 + (a % 2 == 0 ? 0 : 1) != b / 2 + (b % 2 == 0 ? 0 : 1)) { // a와 b가 같은 팀인지 확인 ..