[백준 4641번] Doubles
[백준 4641번] Doubles
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 32 33 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.StringTokenizer; public class 백준_손수경_정답_4641 { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { String n = br.readLine(); ArrayList<Integer> listNum = new ArrayList<>(); if (n.equals("-1")) { break; } String[] temp = n.split(" "); for (String i : temp) { if (i.equals("0")) { break; } listNum.add(Integer.valueOf(i)); } int cnt = 0; for (int i : listNum) { if (listNum.contains(i * 2)) { cnt++; } } System.out.println(cnt); } } } | cs |
풀이 방법
먼저 br
로 받는 값은 문자열이기 때문에 -1인지 아닌지 판별도 정수형이 아닌 문자열로 해야된다. 그리고 -1이 아니라면 공백만큼 쪼개서 배열로 넣는다. 배열에 들어있는 문자(데이터 형은 문자열)을 비교를 통해서 0이 아닌 다른 값들은 listNum
에 넣어준다. ArrayList를 사용한 이유는 contains 메서드를 사용하기 위함이다. contains 메서드의 리턴값은 true/false이므로 조건문을 통해서 2배의 값이 포함된다면 카운트를 하는 것으로 코드를 짰다.
댓글남기기