백준 251

[백준, 자바, 1440번] 타임 머신

풀이 해당 문제는 순열을 활용하여서 단순하게 해결하고자 했으며 각 영역에 따른 조건 분기를 거친 후 result 값을 변경하여 해결하면 되는데 자바에선 파이썬처럼 순열을 만들어주는 라이브러리가 없다고 한다... ㅋ 그래서 재귀로 하나씩 직접 해결하도록 만들어 해결할 수 있었다. import java.io.*; import java.util.*; public class 타임머신 { static Integer result = 0; public static void main(String[] args) throws IOException{ BufferedReader br =new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new ..

알고리즘 2024.01.09

[백준, 자바, 1251번] 단어 나누기

풀이 해당 문제는 입력된 문자열을 3등분으로 나누어 역순 시킨 문자열 중 사전순 가장 앞의 문자열을 출력하는 문제이기에 단순히 아래와 같이 해결. import java.io.*; import java.util.*; public class 단어나누기 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String x = br.readLine(); Integer x_ln = x.length(); ArrayList result = new ArrayList(); for (int i = 0; i < x_ln-2; i++) { ..

알고리즘 2024.01.08

[백준, 자바, 1392번] 노래 악보

풀이 해당 문제를 처음 보았을 때 무슨 말이야 했는데 단순히 질문하는 시간에 몇 번째 노래가 나오고 있는지 물어보는 문제로 우선 노래 시간을 배열에 추가할 때 입력값 + 누적값 -1을 추가하여 셋팅한 다음 2중 for문으로 입력된 질문 시간에 따라 질문 시간이 특정 배열의 시간보다 작거나 같다면 출력하는 식으로 해결 import java.io.*; import java.util.*; public class 노래악보 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new Stri..

알고리즘 2024.01.08

[백준, 파이썬, 1392번] 노래 악보

풀이 해당 문제를 처음 보았을 때 무슨 말이야 했는데 단순히 질문하는 시간에 몇 번째 노래가 나오고 있는지 물어보는 문제로 우선 노래 시간을 배열에 추가할 때 입력값 + 누적값 -1을 추가하여 셋팅한 다음 2중 for문으로 입력된 질문 시간에 따라 질문 시간이 특정 배열의 시간보다 작거나 같다면 출력하는 식으로 해결 import sys input = sys.stdin.readline n,q = map(int,input().split()) n_li, x = [], 0 for i in range(n): z = int(input()) n_li.append(z + x -1) x += z for _ in range(q): Q = int(input()) for i in range(n): if Q > n_li[i]:..

알고리즘 2024.01.08

[백준, 자바, 1362번] 펫

풀이 해당 문제는 단순하게 풀 수 있는 문제로 현재 체중이 적정 체중의 1/2 초과 2배 미만으로 있는지에 대한 여부와 0이하의 체중 그리고 이외 이렇게 분류해서 해결할 수 있는데 여기서 간과했던 부분으로는 문제의 마지막에 있는 문장으로 ` 매 작용이 끝날 때마다 펫은 자신의 상태를 표시하며, 펫이 중간에 죽는다면 이후의 작용은 무시됩니다.` 위 조건을 적용해야 해결이 되기에 state를 두어 해결 할 수 있도록 함. import java.io.*; import java.util.*; public class 펫 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new Input..

알고리즘 2024.01.03

[백준, 파이썬, 1362번] 펫

풀이 해당 문제는 단순하게 풀 수 있는 문제로 현재 체중이 적정 체중의 1/2 초과 2배 미만으로 있는지에 대한 여부와 0이하의 체중 그리고 이외 이렇게 분류해서 해결할 수 있는데 여기서 간과했던 부분으로는 문제의 마지막에 있는 문장으로 ` 매 작용이 끝날 때마다 펫은 자신의 상태를 표시하며, 펫이 중간에 죽는다면 이후의 작용은 무시됩니다.` 위 조건을 적용해야 해결이 되기에 state를 두어 해결 할 수 있도록 함. import sys input = sys.stdin.readline cnt = 0 while True: state = False cnt += 1 o,w = map(int,input().split()) if o == 0 and w == 0: break while True: x,y = inpu..

알고리즘 2024.01.03

[백준, 자바, 1357번] 뒤집힌 덧셈

풀이 해당 문제는 아주 간단하게 해결할 수 있었는데 자바에서는 파이썬 처럼 자유롭게? 형 변환이 안되어 조금 걸렸다. 해결 방법으로는 x,y의 값을 처음에는 배열로 바꿔서 다시 값을 합치고 해야하는 줄 알았지만 간단하게 x,y 값을 바로 reverse 시키는 방법이 있어서 해당 방법으로 해결 다만 바로 reverse 시키고자 한다면 StringBuilder 클래스를 사용해서 값을 인자로 넣고 이후 .reverse() 시킨다면 해결 가능! import java.io.*; import java.util.*; public class 뒤집힌덧셈 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedR..

알고리즘 2024.01.03