알고리즘

알고리즘

[Java] 백준 2869 달팽이는 올라가고 싶다 풀이

문제 이 문제의 핵심은 '수학' 문제라는 것이다.처음에 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..

알고리즘

[Java] 백준 2338 긴자리 계산 풀이

엄청난 부자에서도 만났던 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..

알고리즘

[Java] 백준 25206 너의 평점은 풀이

문제  풀이전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합우선 위 공식에 따라 아래 내용을 구해야 한다.1. 전공과목별 합 : 학점 X 과목평점2. 학점의 총합3. P 가 점수인 것은 계산에서 제외 소수점이 들어가니 float, double 중에 선택한다. 나는 float 으로 선택했다. 띄어쓰기로 구분되기 때문에 BufferedReader 과 함께 StringTokenizer 을 선언해준다.입력하는 한 줄에 과목, 학점, 성적까지 전부 들어가니 변수를 생성하여 토큰 값을 담아준다. * 이후로 계속 사용되기 때문에 변수에 담아주는 것이 좋다. grade의 앞자리를 확인하는 switch 문을 작성했다.A : 4, B : 3, C : 2, D : 1로 추가하면 된다. 공통되어 나타나는 + 와 ..

알고리즘

[Java] 백준 1157 단어 공부 풀이

문제  풀이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..

알고리즘

Solved.ac 백준 실버 4 달성 !

드디어 실버 4 달성 !!98문제 풀었을 때 실버 4 달성했다.   solved.ac 의 난이도를 봐도 뭐부터 풀어야할지 모르겠어서 백준의 '단계별 문제풀이' 로 천천히 풀어가고 있다.개인적으로 실버 5 문제보다 브론즈 1 문제가 더 어려웠다.  마지막에 1포인트 남아서 아무거나 빨리 풀겠다고 긴자리 계산 잡았다가 낭패 봤다. 쉬울 줄 알았는데, 런타임 에러가 발생했다.   알고리즘 관련 강의는 아직 하나도 안 들었는데, 막히기 시작할 때부터 들으려고 한다.아직까지는 사용한 적이 많이 없는 배열이 좀 어렵고 나머지는 괜찮게 풀 수 있다. 고민해본대로 구현하면 풀리니 재밌다 (아직까지는 ㅎㅎ)자바의 함수를 많이 이용하고 싶은데, 머릿속에 남아있는 함수가 많이 없다. 너무 조급해하지 않고 차근차근 하려고 한..

알고리즘

[Java] 백준 10811 바구니 뒤집기 풀이

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 번째 바구니가 역순이 되어야 하기 때문에 두 바구니가 교환된다고 보면 된다. 이해가 안가면 위에 작성해놓은 순서를 보면 된다. 즉..

알고리즘

[Java] 백준 1264 모음의 개수 자바 해설 (Scanner.next / nextLine);

모음의 개수를 구하는 백준 알고리즘 문제이다.  거의 다 풀었는데 계속 아래와 같이 나왔다 ..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){..

알고리즘

[Java] for문 별찍기 연습, 백준 2439 문제

문제 해석 임의의 숫자를 입력해 입력한 숫자만큼의 줄까지 별을 출력해야 한다. 별의 개수는 한개씩 늘어난다. 공백의 개수 + 별의 개수 = 입력한 임의의 숫자이다. 문제 풀이 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가 하나씩 늘어나기 때문에..

알고리즘

[Java] StringTokenizer 자바 문자열 분리하기 (백준 1152)

StringTokenizer는 Java 프로그래밍 언어에서 제공되는 클래스로, 문자열을 지정한 구분자(delimiter)를 기준으로 분리해주는 역할을 합니다. 주로 텍스트 처리 작업에서 사용되며, 문자열을 특정 구분자를 기준으로 여러 개의 토큰(token)으로 분리할 때 유용합니다. StringTokenizer tokenizer = new StringTokenizer(inputString, delimiter); 여기서 inputString은 분리하고자 하는 문자열이고, delimiter는 문자열을 분리할 때 사용할 구분자입니다. 예를 들어, 아래 코드는 쉼표로 구분된 문자열을 StringTokenizer를 사용하여 분리하는 예시입니다: String input = "apple,banana,grape,ora..

알고리즘

[Java] long보다 큰 BigInteger (백준 1271- 엄청난 부자2)

처음에 작성한 코드는 다음과 같다. 그런데 런타임 에러가 나서 질문 게시판의 힌트를 보니, 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 도 런타임 에러가 발생했다. 그러면,..

Lar
'알고리즘' 카테고리의 글 목록