PS [3일차]

Daniel·2022년 7월 18일
0

PS

목록 보기
3/32
post-thumbnail

문제 번호

1159

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner (System.in);
		// 문자열을 입력할 수
		int testcase = in.nextInt();
		
		String result = "";
		
		// 문자열을 저장할 배열의 크
		String [] stringArray = new String [testcase];
			
		// 간단한 입력
		for (int i = 0 ;i < stringArray.length; i ++) {
			stringArray[i] = in.next();
		}
		
		// 사전순 정렬
		Arrays.sort(stringArray);
		
		// 문자열 2개를 비교하면서 cnt를 1씩 올리므로 초기값은 1이여야 한다.
		int cnt  =  1;
		for (int i = 0 ;i < stringArray.length-1; i ++) {
			// 문자열 2개의 첫 글자가 같으면 1씩 상
			if (stringArray[i].charAt(0) == stringArray[i+1].charAt(0)) {
				cnt++;
			}
			// 아닌경우 1로 초기화
			else if (stringArray[i].charAt(0) != stringArray[i+1].charAt(0)){
				cnt =1;
			}
			// cnt가 5일때만 해당코드 실행 
			if (cnt == 5) {
				result += stringArray[i].charAt(0);
			}
		}
		// result가 아무것도 없는경우 패배 
		if (result == "") {
			System.out.println("PREDAJA");
		}
		// 아닌경우 result출
		else {
			System.out.println(result);
		}

		
	}
}

TIL

풀이 알고리즘

문제

국가대표팀의 감독이 된 이후에 상근이는 매우 게을러졌다. 그는 선수의 이름을 기억하지 못하고, 각 선수의 능력도 알지 못한다. 따라서, 누가 선발인지 기억하기 쉽게 하기 위해 성의 첫 글자가 같은 선수 5명을 선발하려고 한다. 만약, 성의 첫 글자가 같은 선수가 5명보다 적다면, 상근이는 내일 있을 친선 경기를 기권하려고 한다

상근이가 선수 다섯 명을 선발할 수 없는 경우에는 "PREDAJA" (따옴표 없이)를 출력한다. PREDAJA는 크로아티아어로 항복을 의미한다. 선발할 수 있는 경우에는 가능한 성의 첫 글자를 사전순으로 공백없이 모두 출력한다.

풀이

문자열을 배열에 저장하고 배열에 저장한 문자열을 비교하여 조건이 만족되면 맨 앞 글자를 결과값 변수에 저장한다. 만약 배열에 끝까지 전부 실행 후 결과값 변수가 비어있다면 PREDAJA를 출력하면 해결된다.

회고

원래 18일에 해결해야 하는데 저녁먹고 자버렸다... 문제자체는 어렵지 않았다.

profile
폐쇄

0개의 댓글