백준 / 영화감독 숌 / java

맹민재·2023년 5월 3일
0

Java

목록 보기
3/32

처음 시도 방법

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();

        int i = 0;
        int cnt = 0;
        String t = "0";

        while (cnt < n){
            t = Integer.toString(i);
            if (t.length() - t.replace("666", "").length() == 3){
                cnt++;
            }
            i++;
        }
        System.out.println(t);

    }
    
}

replace를 통해 666을 지우고 지우기 전과 후에 길이 차이가 3이면 cnt를 1씩 증가시키는 방법

주어진 예제입력에 대해서는 모두 정답이였지만 어째서인지 제출하면 계속 틀렸다....

package backjun.Dbruteforce;

import java.util.Scanner;

public class 영화감독숌 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.close();

        int i = 0;
        int cnt = 0;
        String t = "0";

        while (cnt < n){
            t = Integer.toString(i);
            if (t.contains("666")) {
                cnt++;
            }
            i++;
        }
        System.out.println(t);

    }
    
}

contains를 통해 문자열 안에 666이 포함되어에 있는지 확인하는 방식


다른 예기지만 int를 String으로 바꾸는 방법 두가지

Integer.toString(i)
String.valueOf(i)

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글