문제 출처 : https://www.acmicpc.net/problem/18238
code
#include <stdio.h> #include <string.h> //strlen을 쓰기위한 헤더 int main() { char arr[101]; int i, cnt = 0; scanf("%s", &arr); //문자열 입력 // ZOAC에서 'Z'+1은 'A'와 같기 때문에 시계방향으로 돌지 반대방향으로 돌지 결정 if (arr[0] - 'A' <= 'Z' - arr[0] + 1) cnt += arr[0] - 'A'; else cnt += 'Z' - arr[0] + 1; //strlen는 문자열의 길이(널문자 제외)를 재는 함수. i와 i+1을 비교하기때문에 -1을해줌 for (i = 0; i < strlen(arr)-1; i++) { if (arr[i] >= arr[i + 1]) //arr[i]가 arr[i+1]보다 크면? { if (arr[i] - arr[i + 1] <= 13) //알파벳은 총 26개이므로 13을 기준한다. cnt += arr[i] - arr[i + 1]; arr[i]-arr[i+1]로 두 알파벳 사이 칸수를 저장. else cnt += 26 - (arr[i] - arr[i + 1]); } else //그 반대의경우는 i와 i+1의 자리만 바꿔줌 { if (arr[i + 1] - arr[i] <= 13) cnt += arr[i + 1] - arr[i]; else cnt += 26 - (arr[i + 1] - arr[i]); } } printf("%d", cnt); //출력 return 0; }
코드에다가 직접 주석을달아서 설명하는게 나도 복습되고 좋을것같아서 함해봄
다음부터는 주석글자색을 회색으로 하던지 그렇게 해야겠다..