본문 바로가기

Java/본격 Java 상속

[Java] 실습 - 구글 출제문제 풀어보기(1~1000사이의 정수 중 8의 총 개수)

구글 입사문제로 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
반응형