공부 자료/알고리즘
(C/C++) 백준 16360번 - Go Latin
뚜루뚜루세니
2021. 7. 7. 12:40
728x90
문제출처:https://www.acmicpc.net/problem/16360
16360번: Go Latin
Your program is to read from standard input. The input starts with a line containing an integer, n (1 ≤ n ≤ 20), where n is the number of English words. In the following n lines, each line contains an English word. Words use only lowercase alphabet let
www.acmicpc.net
1. 코드
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
while (n > 0) {
char arr[31];
scanf("%s", arr);
switch (arr[strlen(arr)- 1]) {
case 'a':
printf("%ss\n", arr);
break;
case 'i':
printf("%sos\n", arr);
break;
case 'y':
arr[strlen(arr) - 1] = '\0'; //y는 지우고 ios로
printf("%sios\n", arr);
break;
case 'l':
printf("%ses\n", arr);
break;
case 'n':
arr[strlen(arr) - 1] = '\0'; //n은 지우고 anes로
printf("%sanes\n", arr);
break;
case 'e':
if (arr[strlen(arr) - 2] == 'n') {
arr[strlen(arr) - 1] = '\0';
arr[strlen(arr) - 1] = '\0';
printf("%sanes\n", arr);
}
else
printf("%sus\n", arr);
break;
case 'o':
printf("%ss\n", arr);
break;
case 'r':
printf("%ses\n", arr);
break;
case 't':
printf("%sas\n", arr);
break;
case 'u':
printf("%ss\n", arr);
break;
case 'v':
printf("%ses\n", arr);
break;
case 'w':
printf("%sas\n", arr);
break;
default:
printf("%sus\n", arr);
break;
}
n--;
}
}
2. 해결과정
switch문을 사용해서 끝 문자를 체크하고 표에 따라 바꿔주면 된다.
-n,-ne랑 -i,-y는 신경써서 바꿔주면 된다.
3. 느낀점
문제 자체는 간단하지만 switch-case문 말고 더 간단하게 2차원 배열로 받는 방법도 있던데 생각을 못했다.
728x90