[백준/BOJ]18238. ZOAC2 [Bronze2]

jychan99·2021년 8월 24일
0
post-thumbnail
  1. ZOAC2

문제 출처 : 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;
}

코드에다가 직접 주석을달아서 설명하는게 나도 복습되고 좋을것같아서 함해봄
다음부터는 주석글자색을 회색으로 하던지 그렇게 해야겠다..

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글