๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 1475๋ฒˆ: ๋ฐฉ ๋ฒˆํ˜ธ(๋ฌธ์ž์—ด, ๊ตฌํ˜„)

by ์ฃผ๋ฐœ2 2020. 2. 5.
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1475

 

1475๋ฒˆ: ๋ฐฉ ๋ฒˆํ˜ธ

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

www.acmicpc.net

์ฝ”๋“œ

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String N = scan.nextLine();
		int count = 0;
		int[] arr = new int[9];	// 0, 1, 2, 3, 4, 5, 6, 7, 8 ๋‹ด๊ธฐ
		
		N = N.replace('9', '6');	// 9 => 6์œผ๋กœ ๋ณ€๊ฒฝ
		for(int i=0; i<N.length(); i++) 
			arr[N.charAt(i) - 48] ++;	// ํ•„์š”ํ•œ ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค๋กœ ๋ฐฐ์—ด์š”์†Œ ++
			
		arr[6] = (arr[6] + 1) / 2;		// 6์€ 9์™€ ๋’ค์ง‘์–ด์„œ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 2๋กœ ๋‚˜๋ˆˆ๋‹ค.(ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ 1์žฅ ๋”ํ•„์š”ํ•ด์„œ +1)
		
		Arrays.sort(arr);
		System.out.println(arr[8]);
//		
//		
//		// ์ตœ๋Œ€๋กœ ํ•„์š”ํ•œ ๊ฐœ์ˆ˜ ์ฐพ๊ธฐ
//		for(int i=0; i<arr.length; i++) 
//			if(count < arr[i])
//				count = arr[i];
//		
//		System.out.println(count);
		scan.close();
	}

}

 

ํ’€์ด

 - 0 ~ 9๊นŒ์ง€ ์ˆซ์ž๊ฐ€ ํ•˜๋‚˜์”ฉ ๋“ค์–ด์žˆ๊ณ , 6๊ณผ 9๋Š” ๋’ค์ง‘์–ด์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค

์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ 9๋ฅผ 6์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ ,

๊ฐ๊ฐ์˜ ๋ฌธ์ž๋ฅผ ์ธ๋ฑ์Šค๋กœ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด์„ ์„ ์–ธํ•ด ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ++ํ•ด์ค€๋‹ค.

9๋Š” 6์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์œผ๋ฏ€๋กœ, ๋ฐฐ์—ด์˜ 6๋ฒˆ์งธ ๊ฐ’์„ 2๋กœ ๋‚˜๋ˆ ์ฃผ๋Š”๋ฐ, ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ 1์„ธํŠธ๊ฐ€ ๋” ํ•„์š”ํ•˜๋ฏ€๋กœ +1 ํ•œ ๊ฐ’์„ 2๋กœ ๋‚˜๋ˆˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๊ณ„์† ์ œ์ถœํ–ˆ๋Š”๋ฐ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์™”๋‹ค ...

์•„๋ฌด๋ฆฌ ๋ด๋„ ๋งž๋Š”๋ฐ ... ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ•ด๋ดค์ง€๋งŒ ๋‹ค๋ฅธ๊ฒŒ ์—†์—ˆ๋‹ค ,,

ํ•˜์ง€๋งŒ ์•„๋ž˜ ๋ฌธ์žฅ์ด ๋ฌธ์ œ์˜€๋‹ค ...(์œ„ ์ •๋‹ต ์ฝ”๋“œ์—์„  ์ ์–ด๋†“์ง€ ์•Š์Œ.)

if(N.equals("0")){
   System.out.println("0");
   return;
}

N์ด 1,000,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜ ๋˜๋Š” 0์ด๋ผ๋Š” ์ž…๋ ฅ์—,,

0์„ ์ž…๋ ฅ๋ฐ›์•˜์„ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์œ„๋ฌธ์žฅ์œผ๋กœ ์ธํ•ด ๊ณ„์† 100%์ฑ„์ ๊นŒ์ง€ ๊ฐ”์ง€๋งŒ ํ‹€๋ ธ๋‹ค๊ณ  ๋‚˜์™”๋‹ค ..

0์„ ์ž…๋ ฅ๋ฐ›์•˜์„ ๊ฒฝ์šฐ,, 0์„ ์ถœ๋ ฅํ•˜๊ณ  Main()๋ฌธ์„ ์ข…๋ฃŒํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ... ์•„๋‹Œ๊ฐ€์š” !? !?

 

 

ํ‹€๋ฆฐ ์ฝ”๋“œ

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		String N = scan.nextLine();
		int count = 0;
		int[] arr = new int[9];	// 0, 1, 2, 3, 4, 5, 6, 7, 8 ๋‹ด๊ธฐ
		
		if(N.equals("0")){
            System.out.println("0");
            return;
        }
		
		N = N.replace('9', '6');	// 9 => 6์œผ๋กœ ๋ณ€๊ฒฝ
		for(int i=0; i<N.length(); i++) 
			arr[N.charAt(i) - 48] ++;	// ํ•„์š”ํ•œ ํ”Œ๋ผ์Šคํ‹ฑ ์ˆซ์ž๋ฅผ ์ธ๋ฑ์Šค๋กœ ๋ฐฐ์—ด์š”์†Œ ++
			
		arr[6] = (arr[6] + 1) / 2;		// 6์€ 9์™€ ๋’ค์ง‘์–ด์„œ ์“ธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ 2๋กœ ๋‚˜๋ˆˆ๋‹ค.(ํ™€์ˆ˜์ธ ๊ฒฝ์šฐ 1์žฅ ๋”ํ•„์š”ํ•ด์„œ +1)
		
		Arrays.sort(arr);
		System.out.println(arr[8]);
//		
//		
//		// ์ตœ๋Œ€๋กœ ํ•„์š”ํ•œ ๊ฐœ์ˆ˜ ์ฐพ๊ธฐ
//		for(int i=0; i<arr.length; i++) 
//			if(count < arr[i])
//				count = arr[i];
//		
//		System.out.println(count);
		scan.close();
	}

}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€