반응형
안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2012 : 1의 개수는? 2 (자바, JAVA)입니다.
Intro
Question
문제 설명
구글 입사 시험으로 1 ~ 1,000,000까지 1의 개수를 묻는 문제가 나온적이 있다.
이중 for문을 배웠으니 이 문제를 일반화 시켜 문제를 풀어보자.
시작 수 a와 마지막 수 b가 주어지면 a부터 b까지의 수 중 1이 몇 번 들어 있는지 세는 프로그램을 작성하시오.
(숫자의 어느 위치에든 1이 있으면 개수를 센다)
예)
9 13 ----> 5번 ( 10, 11, 12, 13 : 11은 두번으로 계산)
110 113 ----> 9번 ( 110, 111, 112, 113 : 총 9번)
입력
시작수 a와 마지막 수 b가 입력된다.
출력
a와 b까지 1의 개수를 센다.
예시
- 입력 : 1 10
- 출력 : 2
Solution (풀이)
- 풀이 : 메모리 56272, 시간 : 415
public class Answer1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken()); // 시작 수
int b = Integer.parseInt(st.nextToken()); // 마지막 수
int count = 0;
for (int i=a; i<=b; i++) { // a부터 b까지 for문 반복
for (int j=0; j<String.valueOf(i).length(); j++) { // 각 자리 숫자 length만큼 반복문
if (String.valueOf(i).charAt(j) == '1') {
count++;
}
}
}
System.out.println(count);
}
}
Ranking(순위)
반응형
'Algorithm > CodeUp' 카테고리의 다른 글
[CodeUp_Java] Q2009 : 아메리카노 (0) | 2022.11.24 |
---|---|
[CodeUp_Java] Q2011 : 369게임 2 (0) | 2022.11.24 |
[CodeUp_Java] Q2016 : 천단위 구분기호 (0) | 2022.11.23 |
[CodeUp_Java] Q2023 : 엑셀의 열 순서 (0) | 2022.11.23 |
[CodeUp_Java] Q2024 : 숫자를 한글로 변환 (0) | 2022.11.23 |