python-for-coding-test
python-for-coding-test copied to clipboard
p.115 왕실의 나이트 문제
안녕하세요. 자바 코드로 공부중에 궁금한 점이 생겼습니다!
String inputData = sc.nextLine();
int row = inputData.charAt(1) - '0';
int column = inputData.charAt(0) - 'a' + 1;
현재 나이트의 위치를 입력받은 코드인데, 뒤에 -'0' 이나 -'a' + 1 이 어떤 값인지 궁금합니다.(왜 저렇게 하는지..)
안녕하세요, @azurealstn 님!
좋은 질문 감사합니다.
자바에서 문자끼리 더하기 혹은 빼기 연산을 할 때는 아스키코드(ASCII code)값 사이에서의 연산이 수행됩니다.
예를 들어 단순히 다음의 코드를 실행하면 2라는 값이 출력됩니다.
System.out.println('c' - 'a');
C언어나 자바에서는 이러한 원리를 이용해 인덱스를 계산하고자 '0'이나 'a'를 빼는 방법들이 종종 사용됩니다.
또 다른 예시로 다음의 코드를 실행하면 97이라는 값이 출력됩니다.
System.out.println((int) 'a');
감사합니다. 나동빈 드림