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

Easy 91

[백준 04626] 가글 [Java]

문제4626번: 가글 4626번: 가글 boj.ma 풀이주어진 분자와 분모를 7진법으로 나타낼 때, B~E번째 자릿수를 출력하는 문제다.B, E가 0인 경우는 소수점 바로 오른쪽 수로, 정수 부분은 제거하자. N %= D;장제법에 따라, 분자에 10대신 7을 곱하고, 분모로 나누었을때의 몫을 자릿수로 취해야 한다.B~E번째 자릿수만 필요하므로, 0 ~ B - 1번째는 건너뛰자. for (int i = 0; i 풀이시간10분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/04626.java problem-solving/baekjoon-online-judge/eas..

[백준 08896] 가위 바위 보 [Java]

풀이8896번: 가위 바위 보 풀이N개의 로봇들이 가위바위보를 했을 때, 승리한 로봇의 번호를 출력하는 문제다.난이도에 비해 구현 사항이 많다. 순서대로 구현해보자.게임 시작 전 어떤 로봇들이 살아있는지 체크할 배열 isAlive를 선언 및 초기화 했다. // Solve boolean[] isAlive = new boolean[N]; Arrays.fill(isAlive, true);K는 한 로봇이 한 게임 동안 내는 경우와 같다.N개의 로봇들이 각 라운드 별로 어떤 수를 냈는지 enable 배열로 확인해보자. private static int[] getEnableCheckArr(boolean[] isAlive, int K) { ..

[백준 11811] 데스스타 [Java]

문제11811번: 데스스타 11811번: 데스스타 boj.ma 풀이i번째와 j번째 요소의 AND 연산 결과가 저장된 행렬의 대각선 행렬을 구하는 문제다.임의의 A(i)를 구하기 위해서는 A(j)를 제외한 i 행의 AND 연산 결과를 만족하는 M(i, j)를 구해야 한다.최소한의 조건을 만족하는 M(i, j)는 여러 개가 존재할 수 있으며 이 중 아무거나 출력하면 된다.따라서 최소한의 조건을 만족하는 M(i, j)를 구하기 위해 i행의 모든 연산 결과에 대해 OR을 적용했다. // Solve for (int i = 0; i 모든 연산 결과에 OR 연산을 한 M(i, j)는 어떤 A(j)와 AND 연산을 하더라도 올바른 결과를 얻을 수 있다.풀이 시간5분소스코드https://github.c..

[백준 01270] 전쟁 - 땅따먹기 [Java]

문제1270번: 전쟁 - 땅따먹기 1270번: 전쟁 - 땅따먹기 boj.ma 풀이병사들의 번호가 주어질 때, 과반수를 넘는 병사가 존재하는지 검사하는 문제다.Boyer-Moore Voting으로 과반수가 넘는 병사를 빠르게 찾는 방법으로 풀이했다.병사의 번호가 int 범위보다 크므로 long을 사용하자. long candidate = -1, virtualCnt = 0; for (int i = 0; i 가상의 병사 번호 빈도가 실제로 절반을 초과하는지 검사 후 병사의 번호 또는 “SYJKGW”을 출력하자. long actualCnt = 0; for (long a : A) { if (a == candi..

[백준 28447] 마라탕 재료 고르기 [Java]

문제28447번: 마라탕 재료 고르기 28447번: 마라탕 재료 고르기 boj.ma 풀이N개 중 K개의 재료를 고르고, K개의 재료들에 대한 맛 궁합을 합한 최댓값을 구하는 문제다.우선 N개중 K개를 고르는 조합combination을 만들자 private static void combination(int idx, int depth) { if (depth == K) { res = Math.max(res, subCombination(0, 0, new int[2])); return; } for (int i = idx; i 이제 K개중 2개를 고르는 조합 subCombination을 구현하자. 2개를 골랐다면, 재료의 궁합을 다 ..

[백준 04900] 7 더하기 [Java]

문제4900번: 7 더하기 4900번: 7 더하기 boj.ma 풀이7세그먼트 코드를 10진수로 표현한 A, B가 주어졌을 때, A, B의 합 C를 다시 7세그먼트 코드로 표현하는 문제다.우선 7세그먼트 코드에 대응하는 10진수들을 매핑해주자. HashMap map = new HashMap(); map.put("063", "0"); map.put("0", "063"); map.put("010", "1"); map.put("1", "010"); map.put("093", "2"); map.put("2", "093"); map.put("079", "3"); map.put("3", "079"); ..

[백준 23351] 물 주기 [Java]

문제23351번: 물 주기 23351번: 물 주기 boj.ma 풀이첫 캣닢이 죽는 날짜를 최대한 미루도록 물을 주는 문제다.이를 위해서는 남은 수분이 적은 캣닢에게 물을 주는 것이 최선이다.따라서 오름차순으로 정렬 후 K개의 캣닢에게 B-1만큼 물을 주고, 물을 주지않은 나머지 캣닢들은 1씩 감소시키면 된다. Arrays.sort(arr); while (isValid(arr)) { for (int i = 0; i 이후에는 다시 수분이 적은 순대로 정렬 후 날짜를 늘려주자. Arrays.sort(arr); ++day; }풀이 시간5분소스코드https://github.com/rogi-rogi/problem-sol..

[백준 28125] 2023 아주머학교 프로그래딩 정시머힌 [Java]

문제28125번: 2023 아주머학교 프로그래딩 정시머힌 28125번: 2023 아주머학교 프로그래딩 정시머힌 boj.ma 풀이주어진 문자열에 대해 규칙대로 철자를 바꾸는 문제다.철자를 바꾼 횟수가 철자를 바꿔 만들어진 문자열 길이의 절반보다 크다면, 해석을 포기한다.우선 문제에서 주어진 철자 변환 규칙을 맵에 등록했다. 선택사항이다. // Input int T = Integer.parseInt(br.readLine()); HashMap map = new HashMap(); map.put('@', 'a'); map.put('[', 'c'); map.put('!', 'i'); map.put(';', 'j'); ..

[백준 06219] 소수의 자격 [Java]

문제6219번: 소수의 자격 6219번: 소수의 자격 boj.ma 풀이주어진 A와 B 사이의 소수 중 각 자릿수에 D를 포함하는 소수가 몇개인지 구하는 문제다.우선 B까지 존재하는 소수를 에라토스테네스의 체로 구해주자. private static List getPrimeList(int a, int b) { boolean[] isPrime = new boolean[b + 1]; Arrays.fill(isPrime, true); isPrime[0] = isPrime[1] = false; final int sqrtN = (int) Math.sqrt(b); for (int i = 2; i primeList = new ArrayList(); ..

[백준 01940] 주몽 [Java]

문제1940번: 주몽 1940번: 주몽 boj.ma 풀이두 재료를 모아 M개 필요한 값옷을 몇 개 만들 수 있는지 계산하는 문제다.우선 재료들을 정렬하자. // Solve Arrays.sort(A);왼쪽과 오른쪽에 투포인터를 두고, 두 재료가 M이 되는지 확인하면 된다. while (l 풀이 시간5분소스코드https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/01940.java problem-solving/baekjoon-online-judge/easy/01940.java at main · rogi-rogi/problem-solvingDaily Problem Solving C..