아래 사이트에서 약 400개의 문제에 대해 반례를 찾을 수 있다.https://testcase.ac/ Testcase AC총 385개의 백준 문제에 대해 반례를 찾을 수 있습니다. 찾고 있는 문제가 없나요?testcase.ac 백준에 제출하는 코드처럼 package 를 지우고, Main 으로 이름을 변경해주면 된다. 반례 찾기를 클릭하면 반례가 있을 경우 아래와 같이 반례를 찾아준다. 반례가 없을 경우 아래와 같이 나타난다.
자료구조데이터를 정리하고 저장하는 방법이다. 데이터를 잘 정리해 놓으면 나중에 빠르게 찾아볼 수 있다. 개발자가 데이터를 효율적으로 저장하기 위한 것. 알고리즘어떤 문제를 해결하기 위한 단계적 절차이다. 문제를 풀기 위한 명확한 방법 제시 ex) 쇼핑 리스트를 작성할 때, 자주 사는 물건부터 쓰거나, 마트에서 이동하는 순서대로 정리하면 시간이 절약된다. 이와 같이 정보를 정리하고 처리하는 방식이 자료구조와 알고리즘이다. 자료구조와 알고리즘의 관계서로 상호작용하며 서로를 보완한다.자료구조 : 데이터 저장 및 조직화를 담당알고리즘 : 데이터를 처리하고 조작하는 로직 담당ex) 자료구조는 요리 재료, 알고리즘은 요리 레시피
문제 이 문제의 핵심은 '수학' 문제라는 것이다.처음에 while (반복문) 을 사용하였는데, 시간 초과가 발생했다. 시간 제한을 확인하면 0.25초이다.즉, 수학 공식을 작성하여 풀어야 한다는 의미이다. 힌트1. 달팽이는 정상에 오르면 미끄러지지 않는다. > 마지막 날에 올라갈 수 있는 만큼을 제외한 최소 높이를 구한다.2. 최소 높이까지 도달하기 위한 값을 계산한다. 코드위 두가지 사항을 고려하면 아래와 같이 코드를 작성할 수 있다.package AlgorithmStudy.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTok..
엄청난 부자에서도 만났던 BigInteger... https://skylarcoding.tistory.com/149 [Java] long보다 큰 BigInteger (백준 1271- 엄청난 부자2)처음에 작성한 코드는 다음과 같다. 그런데 런타임 에러가 나서 질문 게시판의 힌트를 보니, 10의 1000승은 int에 담을 수 없을 정도로 큰 수입니다. 라고 한다. 대충 int 보다 훨씬 큰 수를 담을 수skylarcoding.tistory.com BigInteger 을 사용할 때는 아래와 같이 생성해주는 것 잊지 말기 ..BigInteger A = new BigInteger(br.readLine()); int로 사용하면 값을 넘어가 에러가 발생한다. 코드package Study.src.bronze;imp..
문제 풀이전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합우선 위 공식에 따라 아래 내용을 구해야 한다.1. 전공과목별 합 : 학점 X 과목평점2. 학점의 총합3. P 가 점수인 것은 계산에서 제외 소수점이 들어가니 float, double 중에 선택한다. 나는 float 으로 선택했다. 띄어쓰기로 구분되기 때문에 BufferedReader 과 함께 StringTokenizer 을 선언해준다.입력하는 한 줄에 과목, 학점, 성적까지 전부 들어가니 변수를 생성하여 토큰 값을 담아준다. * 이후로 계속 사용되기 때문에 변수에 담아주는 것이 좋다. grade의 앞자리를 확인하는 switch 문을 작성했다.A : 4, B : 3, C : 2, D : 1로 추가하면 된다. 공통되어 나타나는 + 와 ..
문제 풀이1. 알파벳 개수만큼의 배열을 만든다2. 각 알파벳이 사용된 횟수를 만든 배열에 기록한다.3. 기록된 횟수로 max 값을 구한다.4. max 값의 Index 도 같이 기록한다.5. max 값의 Index 를 이용해 가장 많이 사용된 알파벳을 출력한다. 코드package Study.src.bronze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.OptionalInt;public class B1157_2 { public static void main(String[] args) throws IOExcep..
드디어 실버 4 달성 !!98문제 풀었을 때 실버 4 달성했다. solved.ac 의 난이도를 봐도 뭐부터 풀어야할지 모르겠어서 백준의 '단계별 문제풀이' 로 천천히 풀어가고 있다.개인적으로 실버 5 문제보다 브론즈 1 문제가 더 어려웠다. 마지막에 1포인트 남아서 아무거나 빨리 풀겠다고 긴자리 계산 잡았다가 낭패 봤다. 쉬울 줄 알았는데, 런타임 에러가 발생했다. 알고리즘 관련 강의는 아직 하나도 안 들었는데, 막히기 시작할 때부터 들으려고 한다.아직까지는 사용한 적이 많이 없는 배열이 좀 어렵고 나머지는 괜찮게 풀 수 있다. 고민해본대로 구현하면 풀리니 재밌다 (아직까지는 ㅎㅎ)자바의 함수를 많이 이용하고 싶은데, 머릿속에 남아있는 함수가 많이 없다. 너무 조급해하지 않고 차근차근 하려고 한..
https://www.acmicpc.net/problem/10811 각 바구니를 놓을 공간인 배열을 N 개의 개수만큼 생성한다.가장 왼쪽이 첫번째 바구니, ... 가장 마지막이 N 번째 바구니이기 때문에, 각 배열의 공간에 해당하는 순번의 바구니를 배치한다.M 개의 줄만큼 반복하여 바구니를 섞는다. 역순을 고려하여 코드를 구현한다. 1 2 3 4 바구니 4개가 있을 경우에 1 4부터 변경을 해야한다고 생각하면 i = 1, j = 4이다.아래와 같이 되어야 한다.a[1] = a[4] a[2] = a[3] a[3] = a[2] a[4] = a[1] i 번째 바구니와 j 번째 바구니가 역순이 되어야 하기 때문에 두 바구니가 교환된다고 보면 된다. 이해가 안가면 위에 작성해놓은 순서를 보면 된다. 즉..
모음의 개수를 구하는 백준 알고리즘 문제이다. 거의 다 풀었는데 계속 아래와 같이 나왔다 ..1. sum 값은 결국 나옴,2. 디버깅 모드로 확인해보니 How / are / you 이런식으로 따로따로 단어별로 값을 확인하고 있었다.그럼 line 으로 문장을 scan 해오도록 수정해야한다. import java.util.Scanner;public class B1264 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); char ch; char[] array = {'a','e','i','o','u'}; int sum = 0; while(true){..
문제 해석 임의의 숫자를 입력해 입력한 숫자만큼의 줄까지 별을 출력해야 한다. 별의 개수는 한개씩 늘어난다. 공백의 개수 + 별의 개수 = 입력한 임의의 숫자이다. 문제 풀이 1. 스캐너를 사용해 임의의 숫자 값을 입력받는다. Scanner sc = new Scanner(System.in); int a = sc.nextInt(); 2. 선언값을 외부에 입력해 전역변수로 사용할 수 있게 한다. int i,j,k; 3. 입력한 임의의 수 (a) 줄만큼 반복하는 for 문 만약 a가 5라면, i = 5,4,3,2,1로 5번 반복한다. for (i = a; i > 0; i--) { ... } 4. 공백 출력하기. 별은 1부터 시작하니 k는 a - 1부터 시작해야한다. a = i이니, i가 하나씩 늘어나기 때문에..