[PGS] 배열 만들기 2

Organ·2023년 11월 27일
0

[문제 풀이]

목록 보기
118/123

문제

내 풀이

public static int[] solution(int l, int r) 
	{
		boolean flag = true;
		int count = 0;	// 배열 크기 구할 변수
		int[] answer;
		
		for(int a = l; a <= r; a++)
		{
			// a 의 자리수 구하기
			String num = String.valueOf(a);
			int leng = num.length();
			
			// 자리수만큼 돌면서 5 또는 0인지 확인
			for(int i = 0; i < leng; i++)
			{
				if(num.charAt(i) == '5' || num.charAt(i) == '0')
					flag = true;
				else
				{
					flag = false;
					break;
				}
			}
			
			// flag 가 true라면 모두 5 또는 0 이므로 숫자세기
			if(flag)
				count++;		
		}
		
		// 담을 배열 선언
		if(count > 0)
			answer = new int[count];
		else
		{
			answer = new int[1];
			answer[0] = -1;
		}
		int j = 0;
		
		// 배열에 값 넣어주기
		for(int a = l; a <= r; a++)
		{
			String num = String.valueOf(a);
			int leng = num.length();
			
			for(int i = 0; i < leng; i++)
			{
				if(num.charAt(i) == '5' || num.charAt(i) == '0')
					flag = true;
				else
				{
					flag = false;
					break;
				}
			}
			
			if(flag)
			{
				answer[j] = a;
				j++;
			}
		}
		
        
        return answer;
    }

다른 풀이

public static int[] solution(int l, int r) 
	{
		boolean flag = true;
		ArrayList<Integer> list = new ArrayList<Integer>();
		int count = 0;	// 배열 크기 구할 변수
		int[] answer;
		
		for(int a = l; a <= r; a++)
		{
			// a 의 자리수 구하기
			String num = String.valueOf(a);
			int leng = num.length();
			
			// 자리수만큼 돌면서 5 또는 0인지 확인
			for(int i = 0; i < leng; i++)
			{
				if(num.charAt(i) == '5' || num.charAt(i) == '0')
					flag = true;
				else
				{
					flag = false;
					break;
				}
			}
			
			// flag 가 true라면 모두 5 또는 0 이므로 넣어주기
			if(flag)
				list.add(a);		
		}
		
		if(list.size() > 0)
		{
			answer = new int[list.size()];
			for(int i = 0; i < list.size(); i++)
			{
				answer[i] = list.get(i);
			}
		}
		else
		{
			answer = new int[1];
			answer[0] = -1;
		}
  
        return answer;
    }

0개의 댓글