• 문제 링크
https://www.acmicpc.net/problem/1907
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), "+=");
bw.write(search(new int[][]{count(st.nextToken()), count(st.nextToken()), count(st.nextToken())}));
bw.flush();
}
private static String search(int[][] mat) {
for (int i = 1; i < 11; i++)
for (int j = 1; j < 11; j++)
for (int k = 1; k < 11; k++) if (compare(mat, i, j, k)) return i + " " + j + " " + k;
return "";
}
private static int[] count(String s) {
int[] arr = new int[3];
for (int i = 0; i < s.length(); i++)
arr[s.charAt(i) == 'C' ? 0 : s.charAt(i) == 'H' ? 1 : 2] += i + 1 < s.length() && Character.isDigit(s.charAt(i + 1)) ? s.charAt(++i) - '0' : 1;
return arr;
}
private static boolean compare(int[][] mat, int i, int j, int k) {
return mat[0][0] * i + mat[1][0] * j == mat[2][0] * k && mat[0][1] * i + mat[1][1] * j == mat[2][1] * k && mat[0][2] * i + mat[1][2] * j == mat[2][2] * k;
}
}'Problem Solving > Baekjoon' 카테고리의 다른 글
| [백준] 5947 Book Club - Brute Force / Java (0) | 2024.05.25 |
|---|---|
| [백준] 6013 Lonesome Partners - Brute Force / Java (0) | 2024.05.24 |
| [백준] 31000 교환 분배법칙 - Brute Force / Java (0) | 2024.05.22 |
| [백준] 5635 생일 - Implementation / Java (0) | 2024.05.21 |
| [백준] 2578 빙고 - Implementation / Java (0) | 2024.05.20 |
댓글