Problem Solving/BOJ
[백준, BOJ 1025] 제곱수 찾기 (java)
https://www.acmicpc.net/problem/1025 1025번: 제곱수 찾기 첫째 줄에 N, M이 주어진다. 둘째 줄부터 N개의 줄에는 표에 적힌 숫자가 1번 행부터 N번 행까지 순서대로 한 줄에 한 행씩 주어진다. 한 행에 적힌 숫자는 1번 열부터 M번 열까지 순서대로 주어지 www.acmicpc.net 메모리: 97,180 KB , 시간: 468 ms 사용 알고리즘:부르트포스 알고리즘 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { static int n; static int..
[백준, BOJ 1719] 택배 (java)
https://www.acmicpc.net/problem/1719 1719번: 택배 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하 www.acmicpc.net 메모리: 23,540 KB , 시간: 420 ms 사용 알고리즘: 플로이드-워셜, 그래프 이론, 최단 경로 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(..
[백준, BOJ 20440] 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 (java)
https://www.acmicpc.net/problem/20440 20440번: 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 첫째 줄에 지동이의 방에 출입한 모기의 마릿수 N(1 ≤ N ≤ 1,000,000)가 주어진다. 다음 N개의 줄에 모기의 입장 시각 TE과 퇴장 시각 TX이 주어진다. (0 ≤ TE output[out]) { // 기존 모기 퇴장 if(result < count) { result = count; resultS = s; resultE = output[out]; } count--; out++; } else if (input[in] == output[out]) { // 기존 모기 퇴장과 동시에 새로운 모기 입장 in++; out++; } } System.out...
[백준, BOJ 1749] 점수따먹기 (java)
https://www.acmicpc.net/problem/1749 1749번: 점수따먹기 동주는 항상 혼자 노느라 심심하다. 하지만 혼자 놀기의 고수가 된 동주는 매일매일 게임을 개발하여 혼자놀기의 진수를 우리에게 보여준다. 어느 날 동주는 새로운 게임을 개발하였다. 바로 점 www.acmicpc.net 메모리: 20,324 KB , 시간: 328 ms 사용 알고리즘: 누적 합, 부르트포스 알고리즘, 다이나믹 프로그래밍 내생각 완탐을 돌리면 시간 복잡도가 $O(N^4)$로 16억이 넘어가서 시간초과일 거라고 생각했다. (다른 답들을 보니까 완탐 돌려도 되긴 하나보다..) 근데 아무리 생각해도 16억이 넘어가는 범위인데 정답만 받으면 의미가 없을 거라고 생각해서 머리 쥐어짜다가 결국 해결법을 찾지 못해서 ..
[백준, BOJ 15927] 회문은 회문아니야!! (java)
https://www.acmicpc.net/problem/15927 15927번: 회문은 회문아니야!! 팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을 www.acmicpc.net 메모리: 19,460 KB , 시간: 216 ms 사용 알고리즘: 애드 혹, 문자열 내 생각 팬린드롬은 모든 문자열이 같지 않은 이상 문자 하나만 빠져도 팰린드롬이 아니라는 것만 알고 있으면 쉽게 풀 수 있는 문제였다... 이 생각을 못해서 뻘 짓 엄청 함. import java.io.BufferedReader; import java.io.InputStreamR..
[백준, BOJ 2110] 공유기 설치 (java)
https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 메모리: 28,800 KB , 시간: 336 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main..
[백준, BOJ 21610] 마법사 상어와 비바라기 (java)
https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 메모리: 23,580 KB , 시간: 264 ms 사용 알고리즘: 구현, 시뮬레이션 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { ..
[백준, BOJ 20210] 파일 탐색기 (java)
https://www.acmicpc.net/problem/20210 20210번: 파일 탐색기 첫 줄에 문자열의 개수 N(2 ≤ N ≤ 10,000)이 주어진다. 그 다음 N줄에 정렬할 문자열이 한 줄에 하나씩 주어진다. 모든 문자열의 길이는 100 이하이며, 알파벳 대소문자와 숫자로만 이루어져 있다. www.acmicpc.net 메모리: 309,456 KB , 시간: 1,188 ms 사용 알고리즘: 구현, 정렬, 문자열 문제 해결할 때 신경 써줘야 하는 것들 문자열 정렬을 위해서는 정렬 알고리즘을 사용해주어야 한다. -> quick sort 구현하여 사용. 정렬을 위해서는 두 문자열을 비교하여 어느 문자가 앞에 와야 할지 결정해야 한다. -> compare 메서드에 이를 구현함. 문자열을 비교할 때, ..
[백준, BOJ 1477] 휴게소 세우기 (java)
https://www.acmicpc.net/problem/1477 1477번: 휴게소 세우기 첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다. N = 0인 경우 둘째 줄은 빈 줄 www.acmicpc.net 메모리: 14,372 KB , 시간: 124 ms 사용 알고리즘: 이분 탐색, 매개 변수 탐색 이분 탐색이라는 것을 알아도 어떤 값으로 이분 탐색해야할 지 찾는 것이 어렵다.. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringToke..
[백준, BOJ 1548] 부분 삼각 수열 (java)
https://www.acmicpc.net/problem/1548 1548번: 부분 삼각 수열 세 수 x, y, z가 x+y>z, x+z>y, y+z>x의 관계를 만족하면, 세 수는 삼각관계에 있다고 한다. 마찬가지로 길이가 N인 수열 B(b[0], b[1], ..., b[n-1])의 모든 b[i], b[j], b[k]가 삼각관계에 있으면 이 수열은 삼각 www.acmicpc.net 메모리: 14,324 KB , 시간: 124 ms 사용 알고리즘: 정렬, 부르트포스 알고리즘, 그리디 알고리즘 참고 https://kau-algorithm.tistory.com/970 [백준/Python] 1548번 부분 삼각 수열 문제링크 https://www.acmicpc.net/problem/1548 1548번: 부분 ..