Aracade Intro #50 chessKnight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
Q.
Given a position of a knight on the standard chessboard, find the number of different moves the knight can perform.
The knight can move to a square that is two squares horizontally and one square vertically, or two squares vertically and one square horizontally away from it. The complete move therefore looks like the letter L. Check out the image below to see all valid moves for a knight piece that is placed on one of the central squares.
일반 체스보드 위의 주어진 나이트 위치에서, 나이트가 움직일 수 있는 수를 찾아봐라.
나이트는 수평으로 두칸, 수직으로 1칸 움직을수 있고, 수직으로 2칸, 수평으로 1칸 움직일 수 있다. 움직임은 글자 L 과 같은 모양이다. 아래 이미지를 확인해서, 가운데 칸에 놓인 나이트의 유효한 이동반경을 확인해라.
e.g.
Input -> cell = "a1"
Output -> chessKnight(cell) = 2
Input -> cell = "c2"
Output -> chessKnight(cell) = 6
//Process
//1. Input string cell
//2. Separate cell string
// 2.1. Convert first char to ascii, get second char to int
//3. Check if first char +2, -2 are in a range of ascii a ~ h -> check each of them
//4. Check if second char +1, -1 are in a range of 1 ~ 8 -> check each of them
//5. Multiply each count -> firstVal
//6. Check if first char +1, -1 are in a range of ascii a~ h -> check each of them
//7. Check if second char +2, -2 are in a range of 1~ 8 -> check each of them
//8. Multiply each count -> secondVal
//8. Return firstVal + secondVal
//처리과정
//1. cell 위치 string을 입력 받는다
//2. string을 분리해둔다.
// 2.1. 첫번째 char 는 ascii, 두번째 char 는 integer
//3. 첫번째 char +2, -2 한 값이 ascii a ~ h 안에 들어가는지 확인한다.
//4. 두번째 char +1, -1 한 값이 1 ~ 8 안에 들어가는지 확인한다
//5. 나온 값들을 곱한값이 가로로 길게 이동하는 값 갯수 firstVal
//6. 첫번째 char +1, -1 한 값이 ascii a~ h 안에 들어가는지 확인한다.
//7. 두번째 char +2, -2 한 값이 1~ 8 안에 들어가는지 확인한다
//8. 나온 값들을 곱한 값이 세로로 길게 이동하는 값 개수 secondVal
//8. Return firstVal + secondVal
Code.. Lemme see code!!!!!
코드.. 코드를 보자!!!!!
int chessKnight(std::string cell) {
int firstInt = (int)cell.at(0);
int secondInt = (int)cell.at(1);
int firstCount1 = 0;
int secondCount1 = 0;
int firstCount2 = 0;
int secondCount2 = 0;
int firstVal;
int secondVal;
if (firstInt + 2 >= 97 && firstInt + 2 <= 104) {
firstCount1++;
}
if (firstInt - 2 >= 97 && firstInt - 2 <= 104) {
firstCount1++;
}
if (secondInt + 1 >= 49 && secondInt + 1 <= 56) {
secondCount1++;
}
if (secondInt - 1 >= 49 && secondInt - 1 <= 56) {
secondCount1++;
}
firstVal = firstCount1 * secondCount1;
if (firstInt + 1 >= 97 && firstInt + 1 <= 104) {
firstCount2++;
}
if (firstInt - 1 >= 97 && firstInt - 1 <= 104) {
firstCount2++;
}
if (secondInt + 2 >= 49 && secondInt + 2 <= 56) {
secondCount2++;
}
if (secondInt - 2 >= 49 && secondInt - 2 <= 56) {
secondCount2++;
}
secondVal = firstCount2 * secondCount2;
cout << firstInt << " " << secondInt << endl;
return firstVal + secondVal;
}
Something else you might like..
2018/12/26 - [Programming/Design Pattern ] - Perfecting OO's Small Classes and Short Methods. 완벽한 객체지향의 작은 클래스와 짧은 메소드, Book:ThoughtWorks Anthology, Java,cpp,자바,oop,좋은코드,객체지향프로그래밍
2018/12/28 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #49 lineEncoding. Algorithm, 알고리즘 문제풀이, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/26 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #48 isDigit. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/26 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #47 isMAC48Address. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/25 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #46 electionsWinners. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/21 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #45 buildPalindrome. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/20 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #44 findEmailDomain. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/17 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #43 isBeautifulString. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/16 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #42 bishopAndPawn. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/14 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #41 digitDegree. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #40 longestDigitsPrefix. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #39 knapsackLight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar
2018/12/20 - [Programming/Java] - How to convert file to byte array (byte[]) example, 파일 객체 바이트로 변환하기 예제코드, java/cpp/c++/scalar
2018/12/18 - [Programming/Java] - How to access controller from existing Pane in JavaFX, pane에서 해당 controller로 접근하기, java/cpp/c++/fx/gui
2018/12/13 - [Computer/Linux] - How to check ongoing live process on Linux cmd, 리눅스 커맨드창에서 어떤 프로세스가 실행중인지 확인하기, java, ubuntu, cpp
2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)
2018/12/06 - [Life/Health care] - Vitamin C 비타민 씨 usage/side effects/dosage 용법/효능/부작용
2018/12/02 - [Life/Health care] - Maca 마카 usage/side effects/dosage 효능/부작용/용법