본문 바로가기

구현182

[자바] 백준 21918 - 전구 (java) 문제 : boj21918 필요 알고리즘 개념 입력받기, 배열, 반복문, 조건문 배열에 입력을 받고 조건문과 반복문을 쓸줄 알면 된다. 시뮬레이션 별건 아니고, 그냥 구현하란 말과 동일하다. 문제에서 제시된 사항을 그대로 구현해서 그대로 실행만 되면 된다. 참고로 백준에서 '구현'태그는 대강 뭐 특별히 쓸거 없을때 달아두는 경우가 많다 ㅋㅋ 그 중에 문제에서 제시된대로 구현만 잘 하면 되는 경우 보통 시뮬레이션 태그도 같이 단다. 사람마다 다를 수 있다. 내 경우엔 그렇다. ※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고.. 2022. 7. 28.
[자바] 백준 23809 - 골뱅이 찍기 - 돌아간 ㅈ (boj java) 문제 : boj23809 규칙을 찾고 구현해보자! 1. n줄에 n개의@ + 3n개의 공백 + n개의@ 2. n줄에 n개의@ + 2n개의 공백 + n개의@ 3. n줄에 3n개의 @ 4. n줄에 n개의@ + 2n개의 공백 + n개의@ 5. n줄에 n개의@ + 3n개의 공백 + n개의@ 이렇게 구현해주면 된다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private void print(int n, StringBuilder sb, int gap) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { sb.append('@').. 2022. 7. 25.
[자바] 백준 23812 - 골뱅이 찍기 - 돌아간 ㅍ (boj java) 문제 : boj23812 규칙을 찾고 구현해보자! @가 가득찬 경우('@@@@@')를 type 0, 좌측과 우측에 일부가 있는 경우('@ @')를 type 1이라고 해보자. type 0의 경우 n행에 걸쳐서 5n개의 골뱅이를 출력한다. type 1의 경우 n행에 걸쳐서 n개의 골뱅이 - 3n개의 공백 - n개의 골뱅이를 출력한다. type에 따라 위의 규칙에 맞춰 출력해주는 함수를 구현한 후, type 1; type 0; type 1; type 0; type 1; 순서대로 출력을 해주면 된다! 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private void print(int.. 2022. 7. 17.
[자바] 백준 23810 - 골뱅이 찍기 - 뒤집힌 ㅋ (boj java) 문제 : boj23810 규칙을 찾고 구현해보자! @가 가득찬 경우를 type 0, 좌측에 일부분만 @가 있는 경우를 type 1이라고 해보자. type 0의 경우 n행에 걸쳐서 5n개의 골뱅이를 출력한다. type 1의 경우 n행에 걸쳐서 n개의 골뱅이를 출력한다. type에 따라 위의 규칙에 맞춰 출력해주는 함수를 구현한 후, type 0; type 1; type 0; type 1; type 1; 순서대로 출력을 해주면 된다! 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private void print(int n, StringBuilder sb, int type) { fo.. 2022. 7. 16.
[자바] 백준 23805 - 골뱅이 찍기 - 돌아간 ㄹ (boj java) 문제 : boj23805 규칙을 찾아서 구현해주면 된다. 규칙은 아래와 같다. 1. n줄에 걸쳐 3n개의 @, n개의 공백, n개의 @ 2. 3n줄에 걸쳐 n개의 @, n개의 공백, n개의 @, n개의 공백, n개의 @ 3. n줄에 걸쳐 n개의 @, n개의 공백, 3n개의 @ 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { StringBuilder sb = new StringBuilder(); private void print(char c, int cnt) { while (cnt-->0) sb.append(c); } private void br() {sb.append('\n');}.. 2022. 7. 15.
[자바] 백준 6581 - HTML (boj java) 문제 : boj6581 결국엔 문제에서 제시된대로 구현하면 되긴..하는데.. 좀 까다롭긴하다. 그래도 뭐 해설을 할 부분은 딱히 없는 것 같다. 문제의 조건대로 구현만 하면 되긴하니. 특히 주의할 점이라면 각 줄의 끝에 공백문자가 있으면 안된다. 즉, 'abc ' 이러면 안되고 'abc' 이래야 한다. 이것 때문에 좀 헤맸다. 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class Main { int idx = 0; StringBuilder sb = new StringBuilder(); pr.. 2022. 7. 14.
[자바] 백준 23811 - 골뱅이 찍기 - ㅌ (boj java) 문제 : boj23811 규칙을 찾고 구현해보자. 위와 같이 A형태와 B 형태가 있고, A B A B A 형태로 출력하고 있다. A를 type=0, B를 type=1 이라고 해보자. type 0의 경우 n행에 걸쳐서 5n개의 골뱅이를 출력한다. type 1의 경우 n행에 걸쳐서 n개의 골뱅이를 출력한다. type에 따라 위의 규칙에 맞춰 출력해주는 함수를 구현한 후, type 0; type 1; type 0; type 1; type 0; 순서대로 출력을 해주면 된다! 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { private void print(int n, StringBuild.. 2022. 7. 13.
[코틀린, 자바] 백준 14651 - 걷다보니 신천역 삼 (Large) (boj kotlin java) 문제 : boj14651 우선 3의 배수를 판정하는 방법부터 알아보자. 이 경우 수 A의 모든 자리의 숫자의 합이 3의 배수라면 A도 3의배수이다(정수론). 그럼 이 문제는 N자리 숫자에 대해, N번의 선택을 거친 결과 모든 자리 수의 합이 3의 배수인 경우의 수를 찾는 문제인 셈이다. 물론 단순하게 brute force로 찾아보려 한다면 O(3^33333)이 필요하므로 불가능하다. DP로 생각해보자. dp[a][b]를 a번째 자리수까지 더했을 때의 합을 3으로 나눈 나머지가 b인 경우의 수로 정해보자. 그럼 a가 5일때까지만 살펴보자. (N=5) 1. 우선 a=1 일 경우 다음과 같이 될 것이다. 또 이렇게 두면 '0으로 시작하는 수는 만들 수 없는 수 이삼' 부분을 별도로 처리하지 않아도 되기 때문에.. 2022. 7. 10.
[자바] 백준 10409 - 서버 (boj java) 문제 : boj10409 n번동안 정수를 입력받으면서, 남은 t에 입력받은 정수를 뺀 값이 양수인 동안 cnt라는 값을 증가시켜준고 t를 입력받은만큼 빼준다. 그리고 n개를 모두 입력받거나, 남은 t가 음수가 된 경우 cnt를 출력해주면 된다! 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { private void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokeniz.. 2022. 7. 8.
[자바] 백준 9295 - 주사위 (boj java) 문제 : boj9295 1. 테스트 케이스 수를 입력받고, 반복문으로 테스트케이스 수만큼 반복하면서 현재 테스트 케이스 몇 번 인지 알 수 있어야 한다. 2. 두 개의 숫자를 입력받아 합을 구할 수 있어야 한다. 위 두가지를 할 수 있다면 풀 수 있다! 코드 : github import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { private void solution() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = .. 2022. 7. 7.