[백준 10871] : X보다 작은 수

로빈고·2023년 3월 24일
0

Java

목록 보기
4/11

📖문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

🗝️풀이 코드

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int arrCount = sc.nextInt(), maxNum = sc.nextInt();
		sc.nextLine(); //엔터 먹어가기
		int num=0;
		
		for(int i=0; i<arrCount; i++) {
			num = sc.nextInt();
			if(num<maxNum)
				System.out.print(num+" ");
		}
		
	}
}

⚠️issue

문제접근

  1. 의식의 흐름으로 자연스럽게 정수 배열을 받으려고 시도
  2. 정수 배열을 어떻게 입력 받을까?
  3. 문자 배열을 입력 받은 다음, 형을 변환해서 저장하자
  4. 배열 입력 받지말고 문자열을 charAt()메서드로 접근하자
  5. 형을 정수로 변환하고 0아스키 코드 48을 빼서 maxNum이랑 비교하자
    => 출력 오류 발생

🔍solution

  • 출력 값을 보니 charAt() 메서드는 말 그대로 글자 하나씩 접근
    => 한자리 수 숫자는 잘 인식, 두자리 이상 되면 각 자리 숫자를 쪼개서 하나의 숫자로 인식 + 띄어쓰기 까지 문자로 인식
  • 각각의 숫자를 읽어내야하는 문제를 풀기에 적합하지 않음

=> 문제 접근 방향 바꾸기

  • for 사용 -> 배열이 아닌 변수에 값을 입력받고, 실시간 비교, 출력 한꺼번에 해결

🤓총정리

  • 문자열의 각 글자는 charAt()메서드로 접근 가능
  • 문자형 숫자를 정수형으로 바꾸려면 형변환+48빼주기
  • 문제 접근 고민 좀 더 해보기

참고 자료 정수배열포스트

profile
Cucumber hater.

0개의 댓글