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 |