문제시간복잡도 개념 보러가기 풀이MenOfPassion 함수를 자세히 살펴보면, for 문을 n 회 반복한다는 이야기라는 것을 눈치챌 수 있다. 즉, 시간 복잡도는 O(n) 이다. 다항식으로 표기하면 n, 1차 다항식이므로 최고차항은 1이다. 코드package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B24263 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(ne..
문제 시간복잡도 개념 보러가기 풀이어떠한 반복문도 없이 return A[i] 는 한번 반복한다는 의미이다. 따라서 실행횟수는 1, 상수만 출력되기 때문에 최고차항의 차수는 항상 0이다.* 상수의 최고차항은 항상 0이다. 코드package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B24262 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStrea..
문제 풀이문제 자체는 어렵지 않다. 세 점의 좌표가 같은 직사각형을 만들려면, X,Y 축 좌표의 값이 각각 2개씩 같아야 한다.무슨 말인지 이해가 안 된다면, 그림을 그려보면 된다. 즉, 아래 예시 코드에서는 각각 5가 두개씩 있고 7만 하나이므로 나와야 하는 결과는 7 7 인 셈이다.5 55 77 5 코드문제 자체는 쉬웠는데 어떻게 코드로 구현할지 고민했다. 원래는 이중 for 문으로 결과 값까지 구하려고 했는데, 쉽지 않았다.직사각형은 총 4개의 점이니 개수는 고정되어 있기 때문에 0,1,2는 하드코딩으로 넣어주었다.각각의 값을 비교해 두개인 것을 제외한 나머지 하나를 출력하도록 하였다. package AlgorithmStudy.src.bronze;import java.io.BufferedRea..
시간 복잡도란?알고리즘을 공부하다 보면 '시간 복잡도' 라는 개념을 반드시 마주치게 된다. 시간 복잡도는 주어진 문제를 해결하기 위한 연산 횟수이다. 1억 번의 연산을 1초의 시간으로 간주한다. 즉, 특정 알고리즘이 주어진 문제를 해결하느 데 걸리는 시간을 입력 데이터의 크기(n) 에 대한 함수로 표현한 것이다. ex) 제한시간 2초 : 2억연산 안에 답 도출 입력 데이터가 늘어날 때 알고리즘의 실행 시간이 얼마나 오래 걸리는지를 나타내는 척도이다. 좋은 코드는 기능 동작을 넘어, 효율적으로 동작하는 코드를 만드는 것이다. 이 '효율성'을 객관적으로 측정하는 핵심 지표가 시간 복잡도이다. 백준 문제를 풀 때 흔히 나오는 시간 초과와 시간 복잡도를 연관하여 생각하면 된다. 데이터 100 개를 처리할 때는..
문제 풀이1. N 이 1이 될때까지 반복2. N을 가장 작은 숫자로 소인수분해 시작* 시간 제한 유의 코드package AlgorithmStudy.src.bronze;import java.io.*;public class B11653 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int N = Integer.parseInt(br.rea..
문제 풀이규칙을 찾으면 간단하게 해결되는 문제이다. (이렇게 말했지만 규칙 찾는게 힘들었다 ㅜ 고딩때도 이거때매 넘 힘들었는디..)우선 아래 규칙을 체크해보면 2, 3, 5, 9.. 로 증가함을 알 수 있다. 3번은 점 개수 9개, 총 81개이다.2, 3, 5, 9 1 2 4 ... 이런식으로 증가함을 알 수 있다. 즉, 2의 제곱으로 증가한다.총 점의 개수는 한 변의 점의 개수의 제곱이다. 코드package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B2903_2 { public static vo..
문제 풀이 및 코드1. M ~ N 까지의 수 반복하여 약수 구하기2. 약수일 경우 sum, min 값 구하기* 소수는 본인과 1을 제외한 숫자로만 나누어지는 수이다. 이 문제가 어려울 경우 1978 소수찾기 문제 먼저 풀어보는 것을 추천. package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B2581 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Input..
문제 풀이벌집 한 바퀴를 층 하나라고 가정할 때, 층이 하나씩 높아질 때마다 층에 속하는 방의 개수가 6씩 늘어나는 것을 알 수 있다. 이를 기반으로, 층이 높아질수록 방의 개수를 더해주고, 들어가는 방의 개수를 제외하면 된다. 코드package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B2292_2 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Input..
문제 해설1. 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다. (백준 2506 문제 참조)2. 약수를 구하여 저장한다.3. 저장한 약수를 더하여 입력받은 값과 일치하면 출력한다. 풀이입력받은 약수를 출력할 때만 고민하면 되는 어렵지 않은 문제이다. 1. 숫자를 계속 입력받는다.2. -1을 입력받으면 반복문을 빠져나온다 / 링크 : break 문 설명3. 약수를 구한다.4. 입력받은 약수를 출력한다. package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class B950..
아래 사이트에서 약 400개의 문제에 대해 반례를 찾을 수 있다.https://testcase.ac/ Testcase AC총 385개의 백준 문제에 대해 반례를 찾을 수 있습니다. 찾고 있는 문제가 없나요?testcase.ac 백준에 제출하는 코드처럼 package 를 지우고, Main 으로 이름을 변경해주면 된다. 반례 찾기를 클릭하면 반례가 있을 경우 아래와 같이 반례를 찾아준다. 반례가 없을 경우 아래와 같이 나타난다.