"꾸준하고 완벽한 한 걸음"

practice 122

[백준 21965] 드높은 남산 위에 우뚝 선 [Java]

문제21965번: 드높은 남산 위에 우뚝 선 21965번: 드높은 남산 위에 우뚝 선 boj.ma 풀이주어진 수열이 문제에서 요구하는 수열인지 판별하는 문제다.어떤 지점까지 증가하다 감소하는 형태인지 판별하기 위해서 다음과 같이 분기를 정할 수 있다.현재와 이전 값이 같거나, 감소하는 추세에서 현재 값이 이전 값보다 증가하는 경우증가하는 추세에서 현재 값이 이전 값보다 감소하는 경우두 분기에 따라 결과를 결정하거나, 증가/감소 형태를 결정하면 된다 // Solve boolean isASC = true; String res = "YES"; for (int i = 1; i A[i - 1]) { res = "NO"; ..

[백준 09253] 스페셜 저지 [Java]

문제9253번: 스페셜 저지 9253번: 스페셜 저지 boj.ma 풀이두 문자열 A, B에 C가 있는지 확인하는 문제로 특정 언어에서 쉬운 문제다.Java의 경우 11과 15로 제출 시 시간 초과가 발생한다.Java 8에서 String.contains로 쉽게 풀이할 수 있다.import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String A = br.readLine(); String B = br.readLine(..

[백준 21734] SMUPC의 등장 [Java]

문제21734번: SMUPC의 등장 21734번: SMUPC의 등장 boj.ma 풀이주어진 문자열의 각 문자에 대한 아스키코드의 각 자릿수의 합 만큼 문자를 출력하는 문제다.우선 각 자릿수의 합을 구하자. // Solve for (char c : S) { int loop = 0; int ASCII = c; while (ASCII > 0) { loop += ASCII % 10; ASCII /= 10; }이후 합 만큼 동일한 문자를 출력하면 된다. for (int i = 0; i 풀이 시간5분소스코드https://github.com/..

[백준 26148] 세로 달력 [Java]

문제26148번: 세로 달력 26148번: 세로 달력 boj.ma 풀이주어진 연도가 윤년인지 판별하는 문제다. // Solve int res = ((N % 4 == 0 && N % 100 != 0) || N % 400 == 0) ? 30 : 29;풀이 시간1분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/26148.java problem-solving/baekjoon-online-judge/practice/26148.java at main · rogi-rogi/problem-solvingDaily Problem Solving Challenges. Contribute ..

[백준 03076] 상근이의 체스판 [Java]

문제https://www.acmicpc.net/problem/3076 풀이한 칸의 길이가 A, B인 R*C 배열에 대해 체스판을 그려 넣는 문제다.체스판을 만들기 위해서는 체스판의 한 칸에 해당하는 영역을 방문 후, for (int i = 0; i A*B크기에 동일한 문자를 표시하면 된다. for (int a = 0; a 동일한 문자로 해당 영역을 전부 변경했다면, 마크 모양을 변경해야 한다.또한, 새로운 행으로 이동했다면 이전 행의 첫 번째 열 마크와 달라야 한다. mark = !mark; } startMark = !startMark; mark = startMark; ..

[백준 14655] 욱제는 도박쟁이야!! [Java]

문제https://www.acmicpc.net/problem/14655 풀이주어진 규칙대로 동전을 뒤집어 게임에서 얻을 수 있는 최대 점수를 구하는 문제다. 규칙은 다음과 같다.항상 연속한 3개의 동전만 뒤집는다.동전 배열의 양 끝에서 벗어나서 양 끝의 동전만 뒤집거나양 끝의 두 개 동전만 뒤집는 것도 가능하다.동전을 뒤집는 횟수에 제한은 없다.여기서 중요한 사실은 동전을 뒤집는 횟수에 제한이 없다는 것이다.즉 어느 곳에 위치한 동전이든 결국 내가 원하는 대로 뒤집을 수 있다.따라서 주어진 2개의 동전 목록에 대해 절댓값을 더해주면 정답이 된다. // Solve int sum = 0; for (int i = 0; i 풀이 시간17분소스코드https://github.c..

[백준 11637] 인기 투표 [Java]

문제https://www.acmicpc.net/problem/11637 풀이N명의 후보자에 대한 투표수가 주어질 때 다음 조건에 따라 올바른 문구를 출력하면 된다.최다 득표자가 과반수 득표를 했을 때최다 득표자가 절반 이하의 득표를 했을 때최다 득표자가 2명 이상일 때이를 위해서는 최다 득표 수와, 최다 득표자의 순서, 전체 투표수를 구해야 한다. int max = -1, idx = -1, sum = 0; for (int i = 0; i max) { max = A[i]; idx = i; } }이후 최다 득표자가 2명인지 확인 후 i..

[백준 28238] 정보 선생님의 야망 [Java]

문제https://www.acmicpc.net/problem/28238 풀이주어진 N명의 학생들의 시간표를 보고 가장 많은 학생들이 두 번의 수업에 참여할 수 있는 날과, 참여할 수 있는 인원을 구하는 문제다.학생의 수와 요일의 곱이므로 모든 경우를 다 생각해볼 수 있다.모든 경우에 대한 합을 구하고, 합이 갱신될 때 마다 두 요일을 기록해두면 된다. // Solve int a = -1, b = -1; int max = -1; for (int i = 0; i max) { a = i; b = j; max = cnt; } ..

[백준 01769] 3의 배수 [Java]

문제https://www.acmicpc.net/problem/1769 풀이주어진 수의 각 자리를 합하는 과정을 반복해서 한 자릿수로 만드는 문제다.문자열을 순회하며 합을 구해주자. 연산 횟수도 구해야 하므로 카운트 해주자. // Solve int cnt = 0; while (X.length() > 1) { int sum = 0; for (int i = 0; i 마지막 한 자릿수가 3의 배수인지 아닌지 확인해주자. System.out.println(Integer.parseInt(X) % 3 == 0 ? "YES" : "NO");풀이시간≤ 3m소스코드https://github.com/rogi-rogi/problem-so..

[백준 15780] 멀티탭 충분하니? [Java]

문제https://www.acmicpc.net/problem/15780 풀이K개의 멀티탭으로 N명이 모두 코드를 꽂을 수 있는지 확인하는 문제다.멀티탭에 코드를 연속으로 꽂으면 안되기 때문에 멑티탭 2구당 1명만 꽂을 수 있다.이를 멀티탭 길이에 맞게 계산하면 된다. // Solve for (int a : A) { N -= (a + 1) / 2; }만약 N이 0이하라면 N명은 모두 코드를 꽂았다는 것을 의미한다. // Output System.out.println(N 풀이 시간≤ 2m소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judg..