์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step5] 3052 : ๋‚˜๋จธ์ง€ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 9. 17:10

www.acmicpc.net/problem/3052

 

3052๋ฒˆ: ๋‚˜๋จธ์ง€

๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 39, 40, 41, 0, 1, 2, 40, 41, 0, 1์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์€ 6๊ฐœ๊ฐ€ ์žˆ๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

๋‘ ์ž์—ฐ์ˆ˜ A์™€ B๊ฐ€ ์žˆ์„ ๋•Œ, A%B๋Š” A๋ฅผ B๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 7, 14, 27, 38์„ 3์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1, 2, 0, 2์ด๋‹ค. 

์ˆ˜ 10๊ฐœ๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋’ค, ์ด๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์ด ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ ์—ด๋ฒˆ์งธ ์ค„ ๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆซ์ž๋Š” 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ณ , ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์—, 42๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ, ์„œ๋กœ ๋‹ค๋ฅธ ๋‚˜๋จธ์ง€๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

1

2

3

4

5

6

7

8

9

10

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

10

// ๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1, 2, 3, 4, 5, 6, 7, 8, 9, 10์ด๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 2

42

84

252

420

840

126

42

84

420

126

 

์˜ˆ์ œ ์ถœ๋ ฅ 2

1

// ๋ชจ๋“  ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 0์ด๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 3

39

40

41

42

43

44

82

83

84

85

 

์˜ˆ์ œ ์ถœ๋ ฅ 3

6

// ๊ฐ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 39, 40, 41, 0, 1, 2, 40, 41, 0, 1์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์€ 6๊ฐœ๊ฐ€ ์žˆ๋‹ค.


ํ’€์ด

1. array์—” ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ, array2์—” ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ 42๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ €์žฅ

2. array2[i]์™€ array2[j]๋ฅผ ๋น„๊ตํ•˜๋Š”๋ฐ, i=j์ผ ๋•Œ๋Š” ํ†ต๊ณผํ•˜๊ณ  (= ์ž๊ธฐ ์ž์‹ ์„ ๋น„๊ตํ•˜์ง€ ์•Š๋„๋ก)

    array2[i]์™€ array2[j]๊ฐ€ ๊ฐ™์œผ๋ฉด array2[j]๋ฅผ -1๋กœ ๋ณ€๊ฒฝ (= ๋ฐฐ์—ด์—์„œ ๊ฐ™์€ ๊ฐ’์ด ์žˆ์œผ๋ฉด ๋‘ ๊ฐ’์ค‘ ํ•˜๋‚˜๋ฅผ -1๋กœ ๋ณ€๊ฒฝ)

์œ„ ๊ฐ’๊ณผ ๊ฐ™์€ ์•„๋ž˜ ๊ฐ’์„ -1๋กœ ๋ณ€๊ฒฝ

     => ๋ฐฐ์—ด ์•ˆ์˜ ๊ฐ’ ์ค‘ ์ค‘๋ณต๋œ ๊ฐ’์ด ์กด์žฌํ•œ๋‹ค๋ฉด ํ•˜๋‚˜๋งŒ ๋‚จ๊ธฐ๊ณ  ๋‚˜๋จธ์ง€๋ฅผ -1๋กœ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•˜๋Š” ๊ณผ์ •

3. array2[i]๊ฐ€ -1๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉด array2[j]์™€ ๋น„๊ตํ•˜์ง€ ์•Š๊ณ  ํ†ต๊ณผํ•œ๋‹ค.

4. array2[] ๊ฐ’์ด -1์ด ์•„๋‹Œ ๊ฐœ์ˆ˜๋งŒ countํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.

 

import java.util.Scanner;

public class B3052 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);

		int[] array = new int[10];
		int[] array2 = new int[10];
		int count = 0;
		
		for(int i = 0; i < 10; i++) {
			array[i] = sc.nextInt();
			array2[i] = array[i] % 42;
		}
		
		for(int i = 0; i < 10; i++) {
			if(array2[i] < 0) {
				continue;
			}
			for(int j = 0; j < 10; j++) {
				if(i == j) { // ์ž์‹ ๊ณผ ์ž์‹ ์„ ๋น„๊ตํ•˜์ง€ ์•Š๋„๋ก
					continue;
				} else if(array2[j] == array2[i]) { // ๊ฐ™์€ ๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ -1๋กœ ๊ฐ’์„ ์ˆ˜์ •
					array2[j] = -1;
				}
			}
		}
		for(int i = 0; i < 10; i++) {
			if(array2[i] >= 0) {
				count++;
			}
		}

		System.out.println(count);

	}

}