알고리즘
백준 #1065 java 2023.01.13
chaewonni
2023. 1. 13. 02:40

다시봐도 내가 너무 한심하게 풀었던 문제.... 1000보다 작으니까 세자리 자연수만 확인했으면 됐는데 조건을 잘 안보고 어렵게 생각해서 푸는데 진짜 오래걸렸다..... (근데 풀고 나서도 답이 자꾸 틀렸음^^...)
package boj_basic.step5;
import java.util.Scanner;
public class Q1065_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
for(int i = 1; i<=N; i++) {
String s = Integer.toString(i);
int num = 0;
int cntt = 0;
for(int j = 0; j<s.length(); j++) {
if(j+1<s.length() && j-1>=0) {
if((s.charAt(j+1)-'0')-(s.charAt(j)-'0')==(s.charAt(j)-'0')-(s.charAt(j-1)-'0'));
cntt++;
}
}
if(cntt == s.length()-2)
cnt++;
else if(s.length()==1||s.length()==2)
cnt++;
}
System.out.println(cnt);
}
}
정말 한심한 틀린 답안..^^
진짜 몇시간동안 붙잡고 있다가 조건 다시 보니까 1000보다 작다?!?!?!ㅎㅎ... 조건만 잘 봤으면 10분컷 할 수 있었을 문제다.
package boj_basic.step5;
import java.util.Scanner;
public class Q1065_3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int cnt = 0;
for(int i = 1; i<=N; i++) {
int num = 0;
if(i>99) {
if((i%100/10)-(i/100)==(i%100%10)-(i%100/10)) {
cnt++;
}
}
else
cnt++;
}
System.out.println(cnt);
}
}
고쳐서 잘 풀었다.ㅎㅎ
두자리수 이하는 무조건 cnt를 하나씩 증가시켜주고, 세자리수는 if조건문에 부합할 때만 cnt를 하나씩 증가시켜주면 쉽게 풀린다!
문제 풀 땐 조건도 정확하게 보기!