시저암호

해설

해당 문자열은 문자인지, 문자라면 소문자인지, 대문자인지, 문자가 아니면 뭔지
4가지를 구별해야한다.
문자가 아닐때는 공백밖에 없고 공백을 그냥 넣으면 되므로 문자인지 아닌지만 판단해서 문자열의 끝에 넣는다.
base를 대문자 소문자로 판단해서 문자 아스키코드를 숫자로 바꾸고
문자 사이의 거리를 계산하고 i( 즉, 각각 'a' 또는 'A'에서 base얼마나 많은 위치가 떨어져 있는지), 이 거리에 알파벳의 위치만큼 문자를 이동한 다음 결과를 모듈로 26를 기준으로 계산한다. 이동된 위치가 알파벳의 끝을 넘어가는 경우 주위를 둘러싸도록 한다. 이 계산의 결과는 알파벳에서 이동된 문자의 새 위치를 나타내는 0에서 25 사이의 숫자입니다.
a~z까지가 0~25까지이기 때문이다. 그래서 26으로 나눈 나머지가 결국 해당 알파벳을 말한다.
그 수를 다시 base에 더해서 이동한 위치를 구한다.
수를 구했으면 다시 알파벳으로 변환한다.
여기서 대소문자는 아스키 숫자가 다르므로 딱히 생각안해도 된다.
'코테공부' 카테고리의 다른 글
프로그래머스 67일차 (0) | 2023.05.02 |
---|---|
프로그래머스 66일차 (0) | 2023.05.01 |
프로그래머스 64일차 (0) | 2023.04.29 |
프로그래머스 63일차 (0) | 2023.04.28 |
프로그래머스 62일차 (0) | 2023.04.27 |
시저암호

해설

해당 문자열은 문자인지, 문자라면 소문자인지, 대문자인지, 문자가 아니면 뭔지
4가지를 구별해야한다.
문자가 아닐때는 공백밖에 없고 공백을 그냥 넣으면 되므로 문자인지 아닌지만 판단해서 문자열의 끝에 넣는다.
base를 대문자 소문자로 판단해서 문자 아스키코드를 숫자로 바꾸고
문자 사이의 거리를 계산하고 i( 즉, 각각 'a' 또는 'A'에서 base얼마나 많은 위치가 떨어져 있는지), 이 거리에 알파벳의 위치만큼 문자를 이동한 다음 결과를 모듈로 26를 기준으로 계산한다. 이동된 위치가 알파벳의 끝을 넘어가는 경우 주위를 둘러싸도록 한다. 이 계산의 결과는 알파벳에서 이동된 문자의 새 위치를 나타내는 0에서 25 사이의 숫자입니다.
a~z까지가 0~25까지이기 때문이다. 그래서 26으로 나눈 나머지가 결국 해당 알파벳을 말한다.
그 수를 다시 base에 더해서 이동한 위치를 구한다.
수를 구했으면 다시 알파벳으로 변환한다.
여기서 대소문자는 아스키 숫자가 다르므로 딱히 생각안해도 된다.
'코테공부' 카테고리의 다른 글
프로그래머스 67일차 (0) | 2023.05.02 |
---|---|
프로그래머스 66일차 (0) | 2023.05.01 |
프로그래머스 64일차 (0) | 2023.04.29 |
프로그래머스 63일차 (0) | 2023.04.28 |
프로그래머스 62일차 (0) | 2023.04.27 |