티스토리 뷰
문제주소
백준 1009 분산처리 www.acmicpc.net/problem/1009
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
백준 1076 저항 www.acmicpc.net/problem/1076
1076번: 저항
첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 색은 모두 위의 표에 쓰여 있는 색만 주어진다.
www.acmicpc.net
백준 1052 물병 www.acmicpc.net/problem/1052
1052번: 물병
지민이는 N개의 물병을 가지고 있다. 각 물병에는 물을 무한대로 부을 수 있다. 처음에 모든 물병에는 물이 1리터씩 들어있다. 지민이는 이 물병을 또 다른 장소로 옮기려고 한다. 지민이는 한 번
www.acmicpc.net
내 풀이
private static void bj1009() throws IOException {
int[][] remains = {
{10},
{1},
{6, 2, 4, 8},
{1, 3, 9, 7},
{6, 4},
{5},
{6},
{1, 7, 9, 3},
{6, 8, 4, 2},
{1, 9}
};
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int ts = Integer.parseInt(br.readLine());
for (int i = 0; i < ts; i++) {
String[] pair = br.readLine().split(" ");
int a = Integer.parseInt(pair[0]) % 10;
int b = Integer.parseInt(pair[1]);
if (a == 0 || a == 1 || a == 5 || a == 6) {
System.out.println(remains[a][0]);
} else if (a == 4 || a == 9) {
System.out.println(remains[a][b % 2]);
} else {
System.out.println(remains[a][b % 4]);
}
}
}
private static void bj1076() throws IOException {
Map<String, Integer> resistance = new HashMap<>(Map.of(
"black", 0,
"brown", 1,
"red", 2,
"orange", 3,
"yellow", 4,
"green", 5,
"blue", 6,
"violet", 7,
"grey", 8,
"white", 9
));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input1 = br.readLine();
String input2 = br.readLine();
String input3 = br.readLine();
int two = resistance.get(input1) * 10 + resistance.get(input2);
if (two == 0) {
System.out.println("0");
} else {
StringBuilder answer = new StringBuilder();
answer.append(two);
answer.append("0".repeat(resistance.get(input3)));
System.out.println(answer);
}
}
private static void bj1052() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
int n = Integer.parseInt(input[0]);
int k = Integer.parseInt(input[1]);
if (Integer.bitCount(n) <= k) {
System.out.println("0");
return;
}
int newCount = 1;
while (Integer.bitCount(n + newCount) > k) {
newCount++;
}
System.out.println(newCount);
}
정리
자바로 알고리즘 문제를 많이 안 풀어서 단순히 입출력을 받는 것도 많이 헤맸다. BufferedReader로 읽어오는 것, 반복되는 값은 배열로 정리하는 것이 편하다는 것 (다소 하드코딩 되어있지만..ㅠㅠ), 문자열에 StringBuilder를 적용하는 것 등을 느꼈다. 물병 문제가 가장 오래걸렸는데 2진법스러운 느낌이 나는 문제는 binary 형태로 풀면 편하다! 😁 일단 푸는게 제일 중요한데 시간!! 이 문제들을 풀면서 효율성을 많이 생각하게 되었다! (자꾸 통과 안 되면 시간때문인가ㅠㅠ 하면서 성능을 높이기 위해 고민을 많이 했다)
'Algorithm > 문제풀이 Java' 카테고리의 다른 글
프로그래머스 - 카카오 인형뽑기, 모의고사, 이상한 문자 만들기, K번째 수 (0) | 2021.01.20 |
---|---|
leetcode - Palindrome, Longest common prefix, Linked list cycle (0) | 2021.01.13 |
leetcode - Two Sum, Reverse Integer, Remove duplicates from sorted list (0) | 2021.01.13 |
- Total
- Today
- Yesterday
- Spring
- 네트워크
- CS
- 월간회고
- 우테코수업
- python
- 내부코드
- 객체지향
- OS
- 카카오
- 알고리즘
- 코드스쿼드
- 회고
- JS
- JPA
- TIL
- 모의면접준비
- java
- 운영체제
- 개발공부일지
- javascript
- 학습로그
- 마스터즈코스
- 글쓰기미션
- TCP/IP
- DB
- React
- Transaction
- 우아한테크코스
- 인증
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |