반응형
https://www.acmicpc.net/problem/1475
풀이
오랜만에 쉬운 문제 등장.
0-9번까지 숫자를 넣어주기 위한 cnt 배열을 생성해주고, 방 번호 N을 charAt으로 잘라서 배열에 입력해준다.
charAt으로 잘라서 int형 배열에 입력하게 되면 아스키코드 값으로 변환되서 들어오기 때문에 숫자 1로 변경해주기 위해서 아스키코드 값이 48인 '0'을 빼주면서 배열에 입력해준다.
int num = N.charAt(i) - '0';
배열에 입력해줄 때 해당 숫자의 인덱스를 +1 시켜주면 된다. 또한 6과 9를 뒤집어서 사용할 수 있기 때문에 6 혹은 9로 통일해서 넣어주면 된다. 필자는 6으로 통일했다. 통일한 배열의 인덱스는 2로 나눈 몫과 나머지 값을 더해줘야한다.
이후에 정렬을 하고 가장 높은 값을 뽑기 위해서 배열의 마지막 인덱스를 출력한다.
<최종코드>
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String N = br.readLine();
int[] cnt = new int[9];
for (int i=0; i<N.length(); i++) {
int num = N.charAt(i) - '0';
if (num == 9) num = 6; // 9 → 6
cnt[num]++;
}
cnt[6] = cnt[6]/2 + cnt[6]%2;
Arrays.sort(cnt);
System.out.println(cnt[8]);
}
}
반응형
'알고리즘 > 구현 & 그리디 & 브루트포스' 카테고리의 다른 글
[백준]JAVA - 1652번: 누울 자리를 찾아라 (0) | 2022.09.26 |
---|---|
[백준]JAVA - 1085번: 직사각형에서 탈출 (0) | 2022.09.26 |
[백준]JAVA - 1018번: 체스판 다시 칠하기 (0) | 2022.09.20 |
[백준]JAVA - 13305번: 주유소 (0) | 2022.09.16 |
[백준]JAVA - 1931번: 회의실 배정 (0) | 2022.09.16 |