코딩테스트 - 프로그래머스/Lv. 0

[66] JAVA 정수부분

유혁스쿨 2023. 11. 27. 15:13
728x90
반응형

문제 설명

실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 ≤ flo ≤ 100

입출력 예

flo result
1.42 1
69.32 69

 

입출력 예 #1

  • 1.42의 정수 부분은 1입니다.

입출력 예 #2

  • 69.32의 정수 부분은 69입니다.

[나의 풀이]

class Solution {
	public in solution(double flo) {
    	return (int) flo;
    }
}

[다른 풀이]

class Solution {
    public int solution(double flo) {
    	return Integer.parseInt(Double.toString(flo).substring(0, Double.toString(flo).indexOf(".")));
    }
}

Integer.parseInt는 String문자열 혹은 문자를 int로 변환한다.

double타입의 flo를 문자열로 변환한 뒤 substring() 메소드를 통해 0부터 "." dot 인덱스까지 잘라내면 정수값을 반환받을 수 있다.

이렇게까지 할 필요가 있나?

 

class Solution {
	public int solution(double flo) {
    	return Integer.parseInt(Double.toString(flo).split("\\.")[0]);
    }
}

그냥 잘라내고 첫번째 인덱스로 접근하는 방법도 있다.

. dot는 정규표현식 에서 어떤 문자와도 매치되는 메타 문자중 하나 이기 때문에 escape처리해야 분할문자로 사용이 가능하다.

728x90
반응형

'코딩테스트 - 프로그래머스 > Lv. 0' 카테고리의 다른 글

[68] JAVA 카운트 다운  (1) 2023.11.27
[67] JAVA 카운트 업  (0) 2023.11.27
[65] JAVA 배열 자르기  (1) 2023.11.27
[64] JAVA 문자 반복 출력하기  (2) 2023.11.27
[63] JAVA 문자열로 변환  (1) 2023.11.22