알고리즘
-
코드 이 문제를 공식으로 풀기 위해서는 시그마의 성질에 대해서 알아야 합니다. 다음 아래의 공식들을 잘 봐주세요. 문제를 시그마를 이용하여 표현하면 다음과 같습니다. 위의 수식을 풀어보면 다음과 같습니다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class No_24267 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); long n = Long...
백준 - 24267번 알고리즘 수업 - 알고리즘의 수행 시간 6코드 이 문제를 공식으로 풀기 위해서는 시그마의 성질에 대해서 알아야 합니다. 다음 아래의 공식들을 잘 봐주세요. 문제를 시그마를 이용하여 표현하면 다음과 같습니다. 위의 수식을 풀어보면 다음과 같습니다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class No_24267 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); long n = Long...
2023.07.16 -
코드 package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class No_11653 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); // 소수를 찾으려면 주어진 수의 제곱근만큼만 돌아보면 찾을 수 있음 for (i..
백준 - 11653번 소인수분해코드 package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class No_11653 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); // 소수를 찾으려면 주어진 수의 제곱근만큼만 돌아보면 찾을 수 있음 for (i..
2023.07.15 -
코드 해당 수가 소수인지 찾는 문제입니다. 에라토스테네스의 체를 사용하면 쉽게 구할 수 있습니다. 자세한 내용은 아래 링크를 참고하세요. https://dokuny-devlog.tistory.com/47 알고리즘 - 소수 구하기 소수 (Prime Number) 소수란 자신보다 작은 2개의 자연수를 곱해 만들 수 없는 1보다 큰 자연수를 의미합니다. 알고리즘에서 소수를 구하는 문제가 간혹 나오곤 하기 때문에 어떤 식으로 소수를 구하 dokuny-devlog.tistory.com package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.S..
백준 - 1978번 소수 찾기코드 해당 수가 소수인지 찾는 문제입니다. 에라토스테네스의 체를 사용하면 쉽게 구할 수 있습니다. 자세한 내용은 아래 링크를 참고하세요. https://dokuny-devlog.tistory.com/47 알고리즘 - 소수 구하기 소수 (Prime Number) 소수란 자신보다 작은 2개의 자연수를 곱해 만들 수 없는 1보다 큰 자연수를 의미합니다. 알고리즘에서 소수를 구하는 문제가 간혹 나오곤 하기 때문에 어떤 식으로 소수를 구하 dokuny-devlog.tistory.com package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.S..
2023.07.15 -
코드 이런 문제를 풀 때는 우선 규칙을 찾아야 합니다. 지그재그로 가는 순서는 1, 2, 3, 4, 5... 이런 식으로 크기가 증가하는 모습을 보입니다. 증가하는 크기만큼 각 대각선의 시작과 끝의 최대값은 순서값(인덱스)와 동일하게 됩니다. 각 대각선에 위치한 박스들의 값을 차례대로 더하면 그 대각선의 끝번의 차례를 알 수 있습니다. 또한, 주어진 X는 어떠한 대각선에 항상 위치하므로 차례는 어떠한 대각선의 끝 차례보다 클 수 없습니다. 이것을 통해서 X의 위치를 계산할 수 있습니다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class..
백준 - 1193번 분수찾기코드 이런 문제를 풀 때는 우선 규칙을 찾아야 합니다. 지그재그로 가는 순서는 1, 2, 3, 4, 5... 이런 식으로 크기가 증가하는 모습을 보입니다. 증가하는 크기만큼 각 대각선의 시작과 끝의 최대값은 순서값(인덱스)와 동일하게 됩니다. 각 대각선에 위치한 박스들의 값을 차례대로 더하면 그 대각선의 끝번의 차례를 알 수 있습니다. 또한, 주어진 X는 어떠한 대각선에 항상 위치하므로 차례는 어떠한 대각선의 끝 차례보다 클 수 없습니다. 이것을 통해서 X의 위치를 계산할 수 있습니다. package baekjoon; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class..
2023.07.15 -
코드 이 문제는 반복문을 이용해서 하루하루를 계산하게 되면 시간초과가 발생합니다. A가 2, B가 1일 때 V까지 도달하려면 기본적으로 10억번의 반복문이 돌아야하고, 그 안에 각종 연산자들까지 포함한다면 시간제한 0.25초를 넘어서게 됩니다. 그러면 반복문을 사용하지 않고 푸는 방법으로는 단순 식을 세워서 계산하는 방식이 있습니다. 일단 하루를 온전히 보낸다(낮과 밤 모두 보냄)는 가정하에 오를 수 있는 높이는 A - B 입니다. 그런데, 문제를 잘보면 정상에 오르는 순간 미끄러져 내려가지 않는다고 합니다. 이 부분을 주의해야합니다. 예를 들어, V가 5이고 A는 3, B는 2인 경우 하루에 오를 수 있는 높이는 1입니다. 그러면 단순히 5 / 1 = 5일로 계산이 됩니다. 그런데 차근차근 한번 살펴 ..
백준 - 2869번 달팽이는 올라가고 싶다.코드 이 문제는 반복문을 이용해서 하루하루를 계산하게 되면 시간초과가 발생합니다. A가 2, B가 1일 때 V까지 도달하려면 기본적으로 10억번의 반복문이 돌아야하고, 그 안에 각종 연산자들까지 포함한다면 시간제한 0.25초를 넘어서게 됩니다. 그러면 반복문을 사용하지 않고 푸는 방법으로는 단순 식을 세워서 계산하는 방식이 있습니다. 일단 하루를 온전히 보낸다(낮과 밤 모두 보냄)는 가정하에 오를 수 있는 높이는 A - B 입니다. 그런데, 문제를 잘보면 정상에 오르는 순간 미끄러져 내려가지 않는다고 합니다. 이 부분을 주의해야합니다. 예를 들어, V가 5이고 A는 3, B는 2인 경우 하루에 오를 수 있는 높이는 1입니다. 그러면 단순히 5 / 1 = 5일로 계산이 됩니다. 그런데 차근차근 한번 살펴 ..
2023.07.15 -
코드 이 문제의 경우, 입력의 끝을 알 수 없기 때문에 헷갈리는 문제입니다. EOF라는 개념을 알아야 풀 수 있는 문제인데, 자세한 내용은 이 글을 참고하시면 좋을 것 같습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb ..
백준 - 10951번 A+B - 4코드 이 문제의 경우, 입력의 끝을 알 수 없기 때문에 헷갈리는 문제입니다. EOF라는 개념을 알아야 풀 수 있는 문제인데, 자세한 내용은 이 글을 참고하시면 좋을 것 같습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb ..
2023.07.14 -
코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; while (true) { st = new StringTokenizer(br.readLine())..
백준 - 10952번 A+B - 5코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st; while (true) { st = new StringTokenizer(br.readLine())..
2023.07.14 -
코드 1번 별찍기와 다르게 공백을 넣어주면 됩니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for (int i = 1; i
백준 - 2439번 별 찍기 - 2코드 1번 별찍기와 다르게 공백을 넣어주면 됩니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for (int i = 1; i
2023.07.14 -
코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for (int i = 0; i < T; i++) { for (int j = 0; j
백준 - 2438번 별 찍기 - 1코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for (int i = 0; i < T; i++) { for (int j = 0; j
2023.07.14 -
코드 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; StringBuilder sb = new StringBuilder(); for (int i = 0; i < T; i++) { st = new StringTokenizer(br.readLine()); sb.append("Case #..
백준 - 11021번 A+B - 7코드 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; StringBuilder sb = new StringBuilder(); for (int i = 0; i < T; i++) { st = new StringTokenizer(br.readLine()); sb.append("Case #..
2023.07.14 -
코드 버퍼를 사용한 입출력 문제입니다. 막 속도 200ms 나오는 사람들 있는데, 그건 FastIO라고 본인들이 입출력 최적화해서 쓰는거라 굳이 알고리즘 풀 때 사용은 안해도 됩니다. 필요하다면 그 때 찾아보고 사용하시면 됩니다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; St..
백준 - 15552번 빠른 A+B코드 버퍼를 사용한 입출력 문제입니다. 막 속도 200ms 나오는 사람들 있는데, 그건 FastIO라고 본인들이 입출력 최적화해서 쓰는거라 굳이 알고리즘 풀 때 사용은 안해도 됩니다. 필요하다면 그 때 찾아보고 사용하시면 됩니다. import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); StringTokenizer st; St..
2023.07.14 -
코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()) / 4; String a = "long"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < N; i++) { sb.append(a).a..
백준 - 25314번 코딩은 체육과목 입니다코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()) / 4; String a = "long"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < N; i++) { sb.append(a).a..
2023.07.14