구글 입사문제로 1~10000 사이의 정수 중 8의 총 개수를 물어보는 문제가 나왔다고 한다.
조금 축소해서 1~1000 사이의 정수 중 8의 총 개수를 구하여 출력해보자
예를 들면
888 > 3개
8128 > 2개
8808 > 3개
이런 식으로 갯수를 카운트 한다.
.
.
-접근방법
1부터 1000까지 숫자를 줄바꿈없이 나열하여 String에 저장한다.
ex) 1234567891011121314......9991000
앞에서부터 하나씩 쪼개서 8의 개수를 확인한다.
/*
1~1000 사이의 정수 중 8의 총 개수를 구하여 출력
*/
class GoogleExam
{
public static void main(String[] args)
{
String GoogleExam = "";
int cnt = 0;
for (int i = 1; i <1001 ; i++ )
{
GoogleExam += i + "";
}
char[] charArr = new char[10000];
for (int i = 0; i < GoogleExam.length() ; i++ )
{
charArr[i] = GoogleExam.charAt(i);
if (charArr[i] == '8')
{
cnt++;
}
}
System.out.println("1 ~ 1000 사이의 정수 중 8의 총 개수 : " + cnt);
}
}
.
.
초기에 하나씩 저장할 배열을 정해야한다는 것에 약간 어려움 있었지만
아주 큰 숫자를 넣거나 저장한 String의 길이를 알아낸다면 쉽게 할 수 있을것이다.
728x90
반응형
'Java > 본격 Java 상속' 카테고리의 다른 글
[Java] String toString() (0) | 2020.07.01 |
---|---|
[Java] 간단한 로그인 프로그램 만들어보기 (0) | 2020.07.01 |
[Java] 실습 - 전화번호부 만들기 - 2 (0) | 2020.06.30 |
[Java] 실습 - 전화번호부 만들기 - 1 (0) | 2020.06.30 |
[Java] InstanceOf 하위클래스 형변환 (0) | 2020.06.30 |