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

๐“ก๐“ธ๐“ธ๐“ถ๐Ÿฃ: ๐’œ๐“๐‘”๐‘œ๐“‡๐’พ๐“‰๐’ฝ๐“‚/๐“ก๐Ÿฃ๐Ÿข๐Ÿฃ: ๐’œ๐“๐‘”๐‘œ๐“‡๐’พ๐“‰๐’ฝ๐“‚

[ALPS Study] ์™„์ „ํƒ์ƒ‰ - ๋ธ”๋ž™์žญ2, ์˜ํ™”๊ฐ๋… ์ˆŒ

์˜ค๋Š˜ ํ’€ ๋ฌธ์ œ๋Š” ์ด ์„ธ ๋ฌธ์ œ์˜€์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋กœ์ ํŠธ ํšŒ์˜๊ฐ€ ๋Šฆ๊ฒŒ ๋๋‚˜์„œ ์šฐ์„  ๋ฒŒ์ ์€ ๋ฉดํ•˜๊ธฐ ์œ„ํ•ด.. ๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ์ธ ์˜ํ™”๊ฐ๋… ์ˆŒ ๋ฌธ์ œ๋งŒ ๋จผ์ € ํ’€์–ด์„œ ์˜ฌ๋ ค ๋†“์•„์•ผ๊ฒ ๋‹ค...  12์‹œ ์ดํ›„์— ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋„ ํ’€์–ด๋ณผ ์˜ˆ์ •์ด๋‹ค. (๊ต‰์žฅํžˆ ์ •์‹ ์ด ์—†๋‹ค)

 

- BOJ 2798 ๋ธ”๋ž™์žญ(2) 

 

 

 

- BOJ 1436 ์˜ํ™”๊ฐ๋… ์ˆŒ

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int ok(int num);
int main() {
	int N,cnt=0,i;
	scanf("%d", &N);
	for (i = 666; cnt != N; i++) {
		if (ok(i))
			cnt++;
	}
	printf("%d", --i);
}
int ok(int num) {
	int tmp = num;
	int a;
	int cnt = 0;
	while (tmp) {
		a = tmp%10;
		if (a == 6)
			cnt++;
		else
			cnt = 0;
		if (cnt >= 3)
			return 1;
		tmp /= 10;
	}
	return 0;
}

 ํ•œ ๋ฒˆ์— ๋งž์•„์„œ ๊ต‰์žฅํžˆ ์‹ ์ด ๋‚œ๋‹ค!!! ์‚ฌ์‹ค ์ž˜ ์ง  ์ฝ”๋“œ์ธ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค. ์‹œ๊ฐ„์ด ์—†ใ„ท.. ์ผ๋‹จ ๋‚ด๊ณ  ๊ณ ์น˜๋˜๊ฐ€ ํ•ด์•ผ์ง€..ใ…Ž ์‚ฌ์‹ค ์ด ๋ฌธ์ œ๋„ ๋ณด์ž๋งˆ์ž ์ด ์ƒ๊ฐ์„ ํ–ˆ๋‹ค. "์„ค๋งˆ ์ด๊ฑฐ ๋‹ค ๋Œ€์ž…ํ•ด๋ด์•ผํ•ด?" main ํ•จ์ˆ˜ ์•ˆ์—์„œ ๋‹ค ์งœ๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ ๋„ˆ๋ฌด ์ง€์ €๋ถ„ํ•ด์ ธ์„œ ํžŒํŠธ๋ฅผ ์–ป๊ณ ์ž ์Šคํ„ฐ๋”” ์˜์ƒ์„ ๋ดค๋Š”๋ฐ ํ•จ์ˆ˜๋กœ ๋นผ์„œ ๊ตฌํ˜„ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ํžŒํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค!

 

- ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ

 

์›๋ฆฌ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค.

1. ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค.

2. ์กฐ๊ฑด์— ๋งž๋Š”(6์ด ์—ฐ์† 3๋ฒˆ ๋‚˜์˜ค๋Š”) ์ •์ˆ˜์ผ ๊ฒฝ์šฐ cnt์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

3. cnt์™€ N์ด ๊ฐ™์•„์ง€๋Š” ์ˆœ๊ฐ„์˜ ์ •์ˆ˜๊ฐ€ ๋ฐ”๋กœ N๋ฒˆ์งธ ์ข…๋ง์˜ ์ˆ˜์ด๋ฏ€๋กœ ์ด ๋•Œ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

main์—์„œ๋Š” ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ๋Œ๋ ค๋ณด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์–ด์ฐจํ”ผ ์ฒซ ๋ฒˆ์งธ ์ข…๋ง์˜ ์ˆ˜๋Š” 666๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋ฏ€๋กœ ๊ตณ์ด 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  666 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ–ˆ๋‹ค. cnt์™€ N์ด ๊ฐ™์ง€ ์•Š์„ ๋™์•ˆ for๋ฌธ์„ ๋ฐ˜๋ณตํ•ด์ฃผ๋ฉฐ i๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. 

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ N๋ฒˆ์งธ ์ข…๋ง์˜ ์ˆ˜๋ฅผ ์ฐพ์œผ๋ฉด for๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค. ์ด ๋•Œ, for๋ฌธ์—์„œ ๋‚˜์˜ค๊ธฐ ์ง์ „์— i++์ด ๋˜๋ฏ€๋กœ, printํ•˜๊ธฐ ์ „์— --i๋ฅผ ํ•ด์ค€๋‹ค. 

 

okํ•จ์ˆ˜์—์„œ๋Š” ์ด ์ˆ˜๊ฐ€ ์ข…๋ง์˜ ์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. n์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ํ•œ ๊ธ€์ž ํ•œ ๊ธ€์ž ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์ž์™€ ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

tmp๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 1์˜ ์ž๋ฆฌ๊ฐ€ ๋œ๋‹ค. tmp๋ฅผ 10์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ค€ ๋’ค ๋‹ค์‹œ while๋ฌธ ์•ˆ์œผ๋กœ ๋“ค์–ด์™€ ๋‹ค์‹œ tmp๋ฅผ 10์œผ๋กœ  ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋Š” 10์˜ ์ž๋ฆฌ ์ˆซ์ž๊ฐ€ ๋œ๋‹ค. (109%10 = 9, 109/10 = 10, 10%10 = 0) ์ด๋Ÿฐ ์‹์œผ๋กœ tmp๋ฅผ 10์œผ๋กœ ๊ณ„์† ๋‚˜๋ˆ„์–ด ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ๊นŒ์ง€ ํŒŒ์•…ํ•œ๋‹ค. ์ด ๋•Œ, ์–ด๋–ค ์ž๋ฆฌ ์ˆ˜๊ฐ€ 6์ด๋ผ๋ฉด cnt๋ฅผ 1 ์ฆ๊ฐ€์‹œํ‚จ๋‹ค. ๋‹ค์Œ ์ž๋ฆฌ ์ˆ˜๋„ 6์ด๋ผ๋ฉด cnt๊ฐ€ ๋˜ ์ฆ๊ฐ€ํ•ด 2๊ฐ€ ๋œ๋‹ค. ๋งŒ์•ฝ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ์ˆซ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด cnt๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” ๋œ๋‹ค. ์—ฐ์†๋˜๋Š” 3์ž๋ฆฌ๊ฐ€ 6์ด์–ด์•ผํ•˜๋ฏ€๋กœ cnt๊ฐ€ 3์ด ๋  ๋•Œ return 1์„ ํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด(๋ชจ๋“  ์ž๋ฆฌ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๋™์•ˆ ๊ณ„์† cnt๊ฐ€ 2 ์ดํ•˜๋ผ๋ฉด) ์—ฐ์†๋˜๋Š” 3์ž๋ฆฌ ์ˆ˜๊ฐ€ 6์ธ ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ return 0 ์„ ํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค. 

 

- ๋ง๋ถ™์ด๊ธฐ

 

์‚ฌ์‹ค ์ •๋ง ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋‹ค. ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ํŒŒ์•…ํ•  ๋•Œ %์™€ / ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ์‚ฌ์‹ค๋งŒ ์•Œ๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋งŒ ๋‚˜์ฒ˜๋Ÿผ, ์„ค๋งˆ ์ด๊ฑธ ๋ชจ๋“  ์ •์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•ด๋ณด๋ผ๊ณ ..? ๋ผ๋Š” ์ƒ๊ฐ์— ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ์„ ์ˆ˜๋Š” ์žˆ๋‹ค... ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ์žˆ์„์ง€๋Š” ๊ณ ๋ฏผํ•ด๋ด์•ผ ๊ฒ ๋‹ค. ์‚ฌ์‹ค ์ € ์ž๋ฆฌ์ˆ˜ ์ชผ๊ฐœ๊ธฐ ์Šคํ‚ฌ์€ ์ด๋ฒˆ ์ปดํ”„ ์‹œํ—˜๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ดค๋˜ ํšŒ๋ฌธ ๊ฒ€์‚ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋•Œ๋ฌธ์— ๊ธฐ์–ตํ•˜๊ณ  ์žˆ๋Š” ๊ฑด๋ฐ ๋‚˜๋ฆ„ ์œ ์šฉํ•˜๋‹ค.