on
[3052] 배열 / 나머지
[3052] 배열 / 나머지
1. 배열로 풀었을 때
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] numArr = new int[10]; for(int i=0;i<10;i++) { numArr[i] = Integer.parseInt(br.readLine()) % 42; } int cnt = 0; boolean flag; for(int i=0;i<10;i++) { flag = true; for(int j=i+1;j<10;j++) { if(numArr[i] == numArr[j]) { flag = false; break; } } if(flag) cnt++; } System.out.println(cnt); } }
: 문제 자체가 배열 문제에 속해있어서 굳이 Set을 쓰지 않고 풀어보았다. Set이 훨씬 쉽고 간편하긴 하지만... 어쨌든 배열 활용을... 해보는 것도 의미있지 않을까!
: boolean flag 선언은 내가 잘 안 하게 되는 선언 중 하나인데, 그래도 적재적소에 잘 써먹은 것 같다. 어떻게든 열심히 연습해두면 필요한 곳에 써먹을 수는 있는 것 같다... ^^
2. TreeSet 활용
import java.io.*; import java.util.TreeSet; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); TreeSet ts = new TreeSet<>(); for (int i = 0; i < 10; i++) { ts.add(Integer.parseInt(br.readLine()) % 42); } System.out.println(ts.size()); } }
: 훠어어어얼씬 간단한 코드. 하지만 알고리즘 공부하기에는 배열 풀이가 더 좋은듯.
from http://javachip-dev.tistory.com/26 by ccl(A) rewrite - 2021-12-15 00:27:18