일상적 이야기들.

codewar: Convert a String to Number! 본문

프로그래밍/알고리즘 문제풀이

codewar: Convert a String to Number!

noveljava 2019. 7. 2. 12:00

문제

 - https://www.codewars.com/kata/544675c6f971f7399a000e79

 

Codewars: Train your coding skills

Codewars is where developers achieve code mastery through challenge. Train on kata in the dojo and reach your highest potential.

www.codewars.com

문제풀이

 - String으로 들어온 문자열을 Int형 변수로 변경하는 문제입니다.

   - Java에서 지원하는 Integer.parseInt( string형변수 ) 를 통해서 가능합니다.

 

public class StringToNumber {
  public static int stringToNumber(String str) {
    //TODO: Convert str into a number
    return Integer.parseInt(str);
  }
}

 

 - 함수를 쓰지 않고, 직접 구현을 해보기로 생각하고 다음과 같이 구현을 하였습니다.

  - 입력받은 문자열을 char array로 변환을 하여, 한글자씩 체크를 합니다.

   - 첫 문자가 '-' 라면, 음수라는 의미이므로 차후 값을 위하여 prefix 로 음수라는 정보를 입력받아둡니다.

   - 문자가 0~9 사이라면, ascii 코드값을 이용하여 숫자의 값을 구합니다. ( '0' 은 Ascii 코드값 48 을 의미합니다. )

   - 그리고, 결과에 값을 더해주게 되는데 한번 수행할때마다 자릿수가 변경이 되므로 *10 을 통해서, 현재 가져온 값을 1의 자리값으로 고정시켜줍니다.

 

   - 모든 계산이 끝난 후, 이전에 구해두었던 prefix를 이용하여 '양수/음수' 의 값을 제대로 설정해줍니다.

 

String tmp = "-1231241231";
int resultValue = 0;
int prefix = 1;

for(char c : tmp.toCharArray()) {
	if('-' == c) {
		prefix = -1;
	} else if( '0' <= c && c <= '9'){
		int value = c - 48;
		resultValue *= 10;
		resultValue += value;
	}
}

resultValue *= prefix;
System.out.println(resultValue);

'프로그래밍 > 알고리즘 문제풀이' 카테고리의 다른 글

codewars: Counting Duplicates  (0) 2019.07.04
codewar: Sum of Parts  (0) 2019.07.02
codewar: Where is THB?  (0) 2019.07.02
codewar: Remove First and Last Character  (0) 2019.06.25
codewar: Fun with lists:indexOf  (0) 2019.06.25
Comments