https://www.acmicpc.net/problem/1065
1065๋ฒ: ํ์
์ด๋ค ์์ ์ ์ X์ ์๋ฆฌ์๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋ฉด, ๊ทธ ์๋ฅผ ํ์๋ผ๊ณ ํ๋ค. ๋ฑ์ฐจ์์ด์ ์ฐ์๋ ๋ ๊ฐ์ ์์ ์ฐจ์ด๊ฐ ์ผ์ ํ ์์ด์ ๋งํ๋ค. N์ด ์ฃผ์ด์ก์ ๋, 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , N๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ํ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
www.acmicpc.net


์ฝ๋
import java.util.Scanner;
public class Main {
public static boolean check(int num) {
boolean flag = false;
String str = Integer.toString(num);
int first = str.charAt(0) - '0';// ๋ฐฑ์์๋ฆฌ
int mid = str.charAt(1) - '0'; // ์ญ์์๋ฆฌ
int last = str.charAt(2) - '0'; // ์ผ์์๋ฆฌ
if((first + last) == (mid * 2)) {
flag = true;
}
return flag;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = scan.nextInt();
int count = 0;
if(N<100) {
count = N;
}
else if(N>100 && N<=110){
count = 99;
}
else {
count += 99;
for(int i=111; i<=N; i++) {
if(check(i))
count ++;
}
}
System.out.println(count);
scan.close();
}
}
ํ์ด
์ฃผ์ด์ง ์ซ์์ ๊ฐ ์๋ฆฌ๊ฐ ๋ฑ์ฐจ์์ด์ธ์ง ํ์ธํ๋ ๋ฌธ์ ,
์ ์ X์ ์๋ฆฌ์๊ฐ ๋ฑ์ฐจ์์ด์ ์ด๋ฃฌ๋ค๋๊ฒ ๋ญ๋ป์ธ์ง ๋ชฐ๋ผ์ ํ์ฐธ์ ์ดํด๋ดค๋ค ...
์๋ฅผ๋ค์ด, 123์ธ ๊ฒฝ์ฐ -> +1 ์ธ ๋ฑ์ฐจ์์ด์ด๋ค.
135์ธ ๊ฒฝ์ฐ -> +2์ธ ๋ฑ์ฐจ์์ด์ด๋ค.
126์ธ ๊ฒฝ์ฐ -> ๋ฑ์ฐจ์์ด์ด ์๋๋ค.
100 ๋ฏธ๋ง์ ์ซ์๋ ์ ๋ถ ๋ฑ์ฐจ์์ด์ด๋ค. (1 ~ 99๊น์ง๋ ์ ๋ถ ๋ฑ์ฐจ์์ด)
๊ทธ๋ฆฌ๊ณ , 100๋ถํฐ 110๊น์ง๋ ์ ๋ถ ๋ฑ์ฐจ์์ด์ด ์๋๊ณ ,
111๋ถํฐ๋ ๋ฑ์ฐจ์์ด์ธ์ง ์๋์ง ํ๋จํด์ค์ผ ํ๋ค.
๋ฐ๋ผ์ N์ด 100๋ฏธ๋ง์ผ๋, 100~110์ผ๋, 110๋ณด๋ค ํด ๋ ์ด 3๊ฐ์ง์ ์ผ์ด์ค๋ก ๋๋์๋ค.
๋ฑ์ฐจ์์ด์ธ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์ฃผ์ด์ง ์ซ์์ ์๋ฆฌ์ค ์ฒซ๋ฒ์งธ, ์ธ๋ฒ์งธ์ ํฉ์ด ๋๋ฒ์งธ ์ซ์์ 2๋ฐฐ๊ฐ ๋๋ฉด ๋๋ค.
123 => (1+3) = (2*2) ์ด๋ฏ๋ก ๋ฑ์ฐจ์์ด,
357 => (3+7) = (5*2) ์ด๋ฏ๋ก ๋ฑ์ฐจ์์ด,
531 => (5+1) = (3*2) ์ด๋ฏ๋ก ๋ฑ์ฐจ์์ด์ด๋ค.
๋ฐ๋ผ์ ๊ฐ ์๋ฆฟ์๊ฐ ๋ฑ์ฐจ์์ด์ธ์ง ์๋์ง ํ๋จํ๋ ๋ฉ์๋ check()๋ฅผ ๊ตฌํํด, ๋ฑ์ฐจ์์ด์ผ๊ฒฝ์ฐ ++๋ฅผ ํด์ฃผ๋ฉด ๋๋ค.
* boolean check() ๋ฉ์๋
check ๋ฉ์๋์์๋, ์ฃผ์ด์ง ์ ์๋ฅผ ๊ฐ ์๋ฆฟ์๋ฅผ ์ฝ๊ฒ ๊ตฌํ๊ธฐ ์ํด String ๋ฌธ์์ด๋ก ๋ณํํ๋ค.
๊ทธ ํ ๊ฐ ์๋ฆฟ์์์ '0'์ ๋นผ์ฃผ๋ฉด ๊ฐ ์๋ฆฟ์์ ๊ฐ์ด ๋๋ค.
๊ทธ ํ ์ฒซ๋ฒ์งธ + ์ธ๋ฒ์งธ์ ๊ฐ์ด ๋๋ฒ์งธ*2๊ฐ ๋๋ฉด ๋ฑ์ฐจ์์ด์ด๋ฏ๋ก, flag๋ฅผ true๋ก ์ ์ฅํ๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 2193๋ฒ: ์ด์น์(DP) (0) | 2020.02.27 |
---|---|
[๋ฐฑ์ค] 2966๋ฒ: ์ฐ๊ธฐ(์์ ํ์, brute force) (0) | 2020.02.26 |
[๋ฐฑ์ค] 1149๋ฒ: RGB๊ฑฐ๋ฆฌ(DP) (0) | 2020.02.26 |
[๋ฐฑ์ค] 11726๋ฒ: 2xn ํ์ผ๋ง(DP) (0) | 2020.02.25 |
[Codeforces] 1223A: CME (0) | 2020.02.25 |
๋๊ธ