666이 연속으로 적어도 3번 이상 들어간지 확인해주기 위해 처음엔 숫자로 나눠서 그 몫이 6인지 아닌지 확인해보는 방식으로 진행해보았으나, 너무 복잡함을 깨닫고 어떻게 해야 할지 찾아보았다. 일단 문자열로 바꿔서 "666"이란 문자열이 포함되는지 확인하는 게 훨씬 낫다는 것을 알게 되고, contains()
메소드를 사용하면 된다는 힌트까지 얻었다.
그 다음엔
while(true) 반복문에 대한 이해가 부족해서 맞왜틀 맞왜틀을 1시간 30분동안 반복했다. 결국 2시간만에 풀어냈다.
while 반복문에 대해 더 학습해야 할 것 같다!
666이 포함되었는지 확인할 때엔 문자열로 파악하는 게 나음
cf.
int -> String : String.valueOf()
나 Integer.toString()
String -> int : Integer.valueOf()
contains()
booleans contains(CharSequence s)
public class baek_1436 {
public static void main(String[] args) {
String str = "1999666";
System.out.println(str.contains("666")); // true
System.out.println(str.contains("9")); // true
System.out.println(str.contains("66 ")); // false (공백구분)
}
}
indexOf()
int indexOf(String str)
public class baek_1436 {
public static void main(String[] args) {
String str1 = "Hello World!";
if(str1.indexOf("World") != -1)
{
System.out.println(str1.indexOf("World"));
// 6
System.out.println("The String "+str1+" contains World");
// The String Hello World! contains World
}
else
{
System.out.println("The String "+str1+"does not contain World");
}
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int count = 0; // N과 비교하기 위한 ~번째
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 입력받는 ~번째
sc.close();
int num = 666; // 출력되는 N번째 수
String str = String.valueOf(num);
while(true) {
if(str.contains("666")) {
count++;
//System.out.println(count);
}
if(count == N){
System.out.println(num);
break;
}
num++;
str = String.valueOf(num);
}
}
}
Java에서 문자열에 문자가 포함되어 있는지 확인하는 방법
https://www.delftstack.com/ko/howto/java/how-to-check-if-a-string-contains-character-in-java/
contains() 메소드
https://mine-it-record.tistory.com/137
늘 감사하게 참고하는 블로그
https://st-lab.tistory.com/103