문제 이 문제의 핵심은 '수학' 문제라는 것이다.처음에 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가 하나씩 늘어나기 때문에..
StringTokenizer는 Java 프로그래밍 언어에서 제공되는 클래스로, 문자열을 지정한 구분자(delimiter)를 기준으로 분리해주는 역할을 합니다. 주로 텍스트 처리 작업에서 사용되며, 문자열을 특정 구분자를 기준으로 여러 개의 토큰(token)으로 분리할 때 유용합니다. StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter); 여기서 inputString은 분리하고자 하는 문자열이고, delimiter는 문자열을 분리할 때 사용할 구분자입니다. 예를 들어, 아래 코드는 쉼표로 구분된 문자열을 StringTokenizer를 사용하여 분리하는 예시입니다: String input = "apple,banana,grape,ora..
처음에 작성한 코드는 다음과 같다. 그런데 런타임 에러가 나서 질문 게시판의 힌트를 보니, 10의 1000승은 int에 담을 수 없을 정도로 큰 수입니다. 라고 한다. 대충 int 보다 훨씬 큰 수를 담을 수 있어야 한다는 뜻으로 이해했다. import java.util.Scanner; public class Main { public static void main(String[] args) { int n,m; Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); System.out.println(n/m); System.out.println(n%m); } } 하지만, long을 썼지만 long 도 런타임 에러가 발생했다. 그러면,..