[백준 알고리즘] 6321번: IBM 빼기 1

6321번: IBM 뺴기 1

'2001: 스페이스 오디세이'는 아서 C. 클라크의 소설이자 스탠리 큐브릭 감독의 영화이다. 이 작품에서 우주선은 토성으로 가고 있다. 긴 여행동안 선원들은 모두 정체 상태에 빠져있고, 두 선원은 깨어나 있다.
우주선은 인공지능 컴퓨터 HAL이 조정하고 있다. HAL은 점점 이상하게 행동하더니 선원들을 죽이기 시작했다.

자세한 이야기는 소설을 읽거나 영화를 보면 알 수 있다. 영화가 유명해지고 난 이후에 사람들은 '2001: 스페이스 오디세이'에 나오는 인공지능 컴퓨터인 HAL의 뜻에 관심을 가졌다.
HAL은 휴리스틱 알고리즘 (Heuristic ALgorithm)의 약자이다. 하지만, HAL의 각 글자를 알파벳 다음 순서로 쓰면 IBM이 되기 때문에, IBM과 연관이 있다고 믿는 사람이 매우 많다.

컴퓨터의 이름이 주어졌을 때, 각 글자를 알파벳 다음 순서로 써서 출력하는 프로그램을 작성하시오.

접근 방법:

아스키 코드 연산으로 쉽게 해결할 수 있을 것 같다. 조건에 이름의 최대길이가 50이라고 주어져서 문자열 길이에 대해 신경쓸 필요도 없고 Z문자가 있으면 아스키코드 대문자 A의 바로 이전이 64로 문자를 바꿔주면 된다.

통과 코드:

#include <cstdio>
#include <string.h>

using namespace std;

int main(){
    int t, i=1;
    scanf("%d", &t);

    while(t--){
        char name[50];
        scanf("%s", name);

        printf("String #%d\n", i++);
        for (int i =0 ; i < strlen(name) ; i++){
            if (name[i] == 'Z') name[i] = 64;
            printf("%c", name[i]+1);
        }
        printf("\n\n");
    }
    return 0;
}

전여훈
Written by@전여훈 (Click Me!)
고민이 담긴 코드를 만들자, 고민하기 위해 공부하자.