코테/백준

[백준/JAVA] 1159번: 농구 경기

imname1am 2023. 4. 14. 02:15
반응형

🔺 문제

 

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

 

반응형