본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1270 : 1의 개수는? 1

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1270 : 1의 개수는? 1 (자바, JAVA)입니다.

Intro

Question

문제 설명

구글 입사 시험으로 1 ~ 1,000,000까지 1의 개수를 묻는 문제가 나온적이 있다.
우리는 이 문제를 풀기에는 아직 힘이 든다.
우리는 이 문제를 조금 쉽게 바꾸어 풀려고한다.
어떤 수 n이 주어지면 1부터 n까지의 수 중 맨 마지막 자리에 1이 몇 번 들어 있는지 알아내는 프로그램을 작성하시오.

입력

n이 입력된다. ( 1 <= n <= 1,000,000 )

출력

맨 마지막 자리에 1이 몇 번 들어 있는지 출력한다.

예시

  • 입력 : 35
  • 출력 : 4

Solution (풀이)

  • 풀이 1 : 메모리 51924, 시간 353
public class Answer1 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());
        int count = 0;    // 마지막자리가 1인 개수를 0개로 초기화 선언

        // 1부터 n까지 for문 반복
        for (int i=1; i<=n; i++) {
            int length = (int)String.valueOf(i).length();    // 입력받은 숫자만큼 for문이 돌면서 i의 자리수를 계산한다.
            if (String.valueOf(i).substring(length-1).equals("1")) {    // substring을 이용하여 마지막 자리 숫자를 알아내고 비교한다.
                count++;
            }
        }

        System.out.println(count);
        br.close();
    }
}
반응형