티스토리 뷰
생각
Github - https://github.com/hellojdh/Code/blob/master/src/swexpert/d3/Q7728.java 숫자가 주어진다 얼마나 다양한 숫자로 이루어져있는지 개수를 출력하여라.
처음 생각
문자열로 주어지는 숫자의 각 자리수를 다룰수 있는지를 보는 문제인것 같다.
다음 생각
문자열의 각자리를 charAt을 통해 읽으면서 해당 값은 아스키코드이므로 '0'을 빼주어 원래 숫자를 얻을 수 있도록 하였다.
▶ 해당 숫자가 이미 사용된 숫자인지를 파악하기위해서 int[10] 즉, 0~9까지 체크할 수 있는 배열을 만들어 문자열에서 해당 숫자가 이미 사용되어있는지를 체크해주었다.
▶ 이경우 숫자의 체크를 위해 배열값을 바꿔주어야하는데 배열을 매번 초기화하면 배열이 클경우 효율이 떨어지므로 매번 바뀌는 값인 테스트 케이스 값을 통해 사용한 숫자인지 체크를 해주었다.
방안
1) Java 풀이
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package swexpert.d3; import java.io.BufferedReader; import java.io.InputStreamReader; public class Q7728 { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int[] arr = new int[10]; int tc = Integer.parseInt(br.readLine()); for(int z = 1; z <= tc; z++){ String n = br.readLine(); int len = n.length(); int result = 0; for(int i = 0; i < len; i++){ int t = n.charAt(i)-'0'; if(arr[t]!=z){ result++; arr[t] = z; } } sb.append('#').append(z).append(' ').append(result).append('\n'); } System.out.println(sb); }// end of main }// end of class | cs |
'알고리즘 > SW Expert' 카테고리의 다른 글
[SW Expert] 7732. 시간 개념 (0) | 2019.06.23 |
---|---|
[SW Expert] 6959. 이상한 나라의 덧셈게임 (0) | 2019.02.16 |
[SW Expert] 6782. 현주가 좋아하는 제곱근 놀이 (0) | 2019.02.07 |
[SW Expert] 6731. 홍익이의 오델로 게임 (7) | 2019.01.14 |
[SW Expert] 3752. 가능한 시험 점수 (0) | 2019.01.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday