🔺 문제
1159번: 농구 경기
상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작
www.acmicpc.net
🔺 코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
Map<Character, Integer> map = new HashMap<>();
for(int i = 0 ; i < N ; i++) {
String str = br.readLine();
char ch = str.charAt(0);
map.put(ch, map.getOrDefault(ch, 0) + 1);
}
// 키랑 값 가져오기
Iterator<Map.Entry<Character, Integer>> iter = map.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry<Character, Integer> entry = iter.next();
if(entry.getValue() >= 5) {
sb.append(entry.getKey());
}
}
if(sb.length() == 0) {
sb.append("PREDAJA");
}
System.out.println(sb);
}
}
✅ 해결 아이디어
- Map을 이용해 입력받은 글자의 첫 글자와, 입력받은 횟수를 저장했다.
- Map.Entry<K,V> 인터페이스의entrySet()
을 사용해 value를 가져와 이 값이 5보다 큰 경우에만 key 값을 StringBuilder에 append 해줬다.
- StringBuilder 길이가 0이면 모든 value들이 5보다 작다는 의미이므로 그 때 PREDAJA를 출력하게 해줬다.
🔺 다른 풀이들
- 풀이1)
[백준 알고리즘] 백준 1159번 농구 경기 자바(Java)
츄르사려고 코딩하는 코집사입니다. 1. [백준 알고리즘] 백준 1159번 농구 경기 자바(Java) 1) 문제번호 : 1159번 2) 문제 출처 www.acmicpc.net/problem/1159 1159번: 농구 경기 상근이는 농구의 세계에서 점차
yongku.tistory.com
알파벳 크기의 배열 alphabet을 만들어 위치에 맞게 1씩 증가시키는 식으로 해결하셨다! (alphabet[ch - 97]++
)
다섯 명 이상인 경우( alphabet[i] >= 5
)에는 (char) (i + 97)
하셨다.
이게 맞는 것 같다.
- 풀이2)
[Java] 백준 1159번 [농구 경기] 자바
[Java] 백준 1159번 [농구 경기] 자바
velog.io
나랑 해결 방식이 같으신데, while(N --> 0)
쓰신게 신기해서.. 가져왔다.
💬 느낀 점
그냥 10808번 알파벳 개수 문제처럼 풀면 좀 더 쉽게 풀리는 문제였는데
괜히 Map 쓰고 Iterator 쓰고 코드를 길게 쓴 것 같다.
그래도 이번 문제 덕분에 Map<K,V> 인터페이스랑 entrySet() 이거 사용법 좀 알게 되었으니까 굿!
2023.04.12 - [코테/백준] - [백준/JAVA] 10808번: 알파벳 개수
[백준/JAVA] 10808번: 알파벳 개수
🔺 문제 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 🔺 코드 import java.util.*; import java.io.*; public class Main { public static v
bono039.tistory.com
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ HashMap 키와 값을 가져오는 방법 (entrySet() 이용, Iterator이용)
[Java]HashMap 키와 값을 가져오는 방법
HashMap HashMap 클래스는 키(Key)-값(Value) 쌍을 저장할 수 있는 Java의 컬렉션입니다. 키는 Map의 값을 연결하는데 사용되는 고유한 식별자로 중복되지 않습니다. 이번 포스팅은 Java의 Map 객체에서 키와
developer-talk.tistory.com
✔ while(var --> 0)
사용법
[Java] while(variable-- > 0) 개념 및 문법 정리
개념 주로 알고리듬이나 어떠한 기능을 만들 때, while문을 쓰게 되는데요. while문 조건에 자주 나오게 되는 녀석이 바로 while(variable-- > 0)입니다. 여기서 '-- >'가 헷갈릴 수도 있는데요. variable--; var
java119.tistory.com
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 13023번: ABCDE (0) | 2023.04.17 |
---|---|
[백준/JAVA] 2023번: 신기한 소수 (0) | 2023.04.17 |
[백준/JAVA] 11004번: K번째 수 (0) | 2023.04.13 |
[백준/JAVA] 11399번: ATM (0) | 2023.04.12 |
[백준/JAVA] 1377번: 버블 소트 (0) | 2023.04.12 |