2024/11/12 4

[백준, 자바, 4134번] 다음 소수

풀이해당 문제는 뭔가 좀 아리송했다.이유는 범위가 40억까지라서 int 타입으로는 해결이 불가하다보니처음 고안했던, 가장 큰값을 기준으로 모든 소수를 구한 다음이분 탐색으로 해당 값을 찾는 형식으로 하려고 했는데,계속 시간초과가 발생해서 이유를 뭔가하고 생각해보니중간에 인덱스에 접근하기 위해 int 타입으로 변환한 것 때문에음수로 뭔가 변경되어 발생한 문제가 아닐까하고 생각이 듬... (확실하진 않지만)그래서 그냥 단순히 값을 가져오면 각각의 수에 대한 소수를 판별하고자 함.그리고 int 타입으로 인덱스에 접근 가능하며, 다량의 소수를 판별하고자 할 경우엔에라토스테네스의 체를 생각해내어 해결하면 될 듯하다.2중 for문을 활용해서 i의 배수가 되는 인덱스 값을 모두 지우는 형식으로 빠르게 소수를 구분할 ..

알고리즘 2024.11.12

[백준, 자바, 1735번] 분수 합

풀이해당 문제에선 고민이 되었던 것은분자가 분모보다 값이 큰 것까지 고려해야할 까? 였는데우선 거기까지는 생각하지 말고 해결해보자는 마음으로 해결했음.우선 분모의 최대공약수를 찾고 그에 따라각 분수의 분자를 곱해준 뒤,합한 분수의 분자와 분모에 대한 GCD를 계속 구하면서1이 나올때까지 반복하여 기약분수로 만들어주면서 해결. import java.util.Scanner;public class _1735 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a1 = sc.nextInt(); int a2 = sc.nextInt(); int b1 = sc.ne..

알고리즘 2024.11.12

[백준, 자바, 1620번] 나는야 포켓몬 마스터 이다솜

풀이알고리즘을 풀 때, 뭔가 항상 효율적으로 풀자라는 생각에시간이 좀 오래걸리는 경우도 있었는데이제는 그냥 단순히 최대한 빨리 푸는 것에 집중하고자 다짐우선 해당 문제에선 빠르게 풀기 위해선그냥 Map과 배열을 모두 활용하는게 좋을 것 같아그대로 적용해보니 수월하게 풀이 완료.다만 입력값이 문자열인지 숫자인지 정확하지 않은 것에 대한판별을 위해서, 별도의 함수를 작성.해당 함수는 정규식을 활용해서 숫자인지 문자인지 판별.이후 다른 코드를 보면서 입력값이 일정하게 정수, 문자열로만 주어진다면두 번째 코드로 해결한다면 더 빠르게 해결할 수 있음. // 첫 번째 코드import java.io.*;import java.util.*;public class _1620 { public static void ma..

알고리즘 2024.11.12