코딩테스트

[BOJ_1159/JAVA] 농구경기

Eun 2021. 12. 1. 20:27

https://www.acmicpc.net/problem/1159

 

1159번: 농구 경기

상근이는 농구의 세계에서 점차 영향력을 넓혀가고 있다. 처음에 그는 농구 경기를 좋아하는 사람이었다. 농구에 대한 열정은 그를 막을 수 없었고, 결국 상근이는 농구장을 청소하는 일을 시작

www.acmicpc.net

 

우선 브론즈의 문제로 굉장히 레벨이 낮은 문제축에 속하지만.. 난 초보이므로 차근차근 하루 1문제씩 뽀개자 ....

 

풀이과정

처음에 접근할때는 charAt()으로 첫번째 글자를 가져와서 저장한 뒤 일일이 비교해서 카운트 세는 걸로 생각했다. 하지만 코드가 너무 길어지고 분명 더 좋은 방법이 있을 것 같아서 구글링을 했다. 똑똑한 사람들은 아스키코드를 이용해서 풀었다.

문자를 아스키코드로 변환해준다. (a가 97~ z가 122) 그리고 해당 자리에 +1 을 해주어서 5가 되면 ArrayList에 추가를 해주었다.

 

또한, 사전식으로 정렬해야했기에  java.util.Collections 클래스의 sort() 메소드를 이용해주었다. -> Collections.sort()  

코드

ㅍimport java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class First {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		Scanner sc = new Scanner(System.in);
		int members=sc.nextInt();				// 선수 입력
		int[] alpha = new int[26];

		ArrayList<Character> result=new ArrayList<>();
		

		for(int i=0;i<members;i++){
			String name =sc.next();
			int first = name.charAt(0)-97;		
			alpha[first]++;
			
			if(alpha[first]==5) {
				result.add((char)(first+97));
			}
		}
		
		if(result.size()==0){
			System.out.println("PREDAJA");
		}
		
		Collections.sort(result);			//정렬..
		for(int i=0;i<result.size();i++){
			System.out.print(result.get(i));
		}

	}

}

 

'코딩테스트' 카테고리의 다른 글

[BOJ_2562/JAVA] 최댓값  (0) 2021.12.05
[BOJ_1233/Java] 주사위  (0) 2021.12.04
[BOJ_1076/JAVA] 저항  (0) 2021.12.02
[백준/Python] 2588번 : 곱셈  (0) 2021.08.14
[백준/Python] 1000번 : A+B  (0) 2021.08.14