Algorithm/JAVA - BOJ 29

BOJ/백준 - 10824 네 수 JAVA

https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 시키는대로 잘 하면 된다. 자료형에 주의하자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader b..

BOJ/백준 - 4949 균형잡힌 세상 JAVA

https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 괄호 문제랑 비슷하다. 여는 괄호면 스택에 넣어주고, 닫는 괄호면 빼주면 된다. 근데 이제 어떤 괄호냐도 체크해줘야함 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53..

BOJ/백준 - 9012 괄호 JAVA

https://www.acmicpc.net/problem/9012 여는 괄호에는 push, 닫는 괄호에는 pop을 해주면 괄호의 한 쌍을 맞출 수 있다. 닫는 괄호인데 스택이 비어있거나, 한 줄을 끝냈는데 스택에 뭐가 남아있으면 짝이 안 맞는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static..

BOJ/백준 - 10773 제로 JAVA

https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net N번 반복하면서 입력된 수가 0이면, pop을 하고 아니면 push해준다. 그리고 스택에 남은 수들을 합해 출력해주면 끝! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 import java.io.BufferedReader; import java.io.IO..

BOJ/백준 - 10828 스택 JAVA

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 걍,,걍 풀면 된다. 시간 줄이려고 StringBuilder를 써봤다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 import java.io.BufferedReader; import java.io.IOExceptio..

BOJ/백준 - 2108 통계학 JAVA

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 뭔가 더 깔끔하게 풀 수 있는 방법이 있을 것 같은데,,,,,, 아무튼 여기서 가장 신경써야할 부분은 최빈값인데, '두 번째' 작은 값을 잘 확인해줘야 한다. 설명은 주석~! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 4..

BOJ/백준 - 18870 좌표 압축 JAVA

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 문제 이해를 잘못해서 머리 박박 긁었던 문제 그니까, 배열을 오름차순으로 정렬해서 자기보다 작은 수가 몇개 있는지 알아보면 된다. 주의할 점은 출력할 때 입력받은 순서를 지킬 것! 설명은 주석에 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32..

BOJ/백준 - 7569 토마토 JAVA

https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net https://deeepbreathing.tistory.com/167 BOJ/백준 - 7576 토마토 JAVA https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다... de..

BOJ/백준 - 1697 숨바꼭질 JAVA

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 야호..재미있는 숨바꼭질 놀이 수빈이의 위치를 이동하는 경우의 수는 X-1, X+1, X*2 세 가지 방법이 있다. 세 가지 방법을 다 다니면서 동생을 찾으면 되는데, visit배열을 이용해 방문체크도 하면서, 가장 빠른 시간도 구한다. 아니 최소인데,,, 뭐 어케 min값을 찾아야되는거 아닌가?할 수도 있는데(내가 그랬음) 걍 잘 생각해보면 어차피 방문했던 곳을 또 방..

BOJ/백준 - 7576 토마토 JAVA

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 토마토를 익혀보자 최소 날짜를 계산하면 되니까, visit배열을 이용해서 날짜를 세준다. 자세한 설명은 주석에~! 여기서도 주의할 점은 배열의 가로와 세로를 헷갈리면 안 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 4..