아무래도 아예 백준을 놓으면 감각을 잃을 것 같아서 병행하기로 했다..
가능할쥐...
5622 다이얼 문제
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
int leng, result=0;
char arr[16];
scanf("%s", arr);
leng = strlen(arr);
for (int i = 0; i < leng; i++) {
if ((65 <= arr[i]) && (arr[i] <= 67)) {
result += 2;
}
else if ((68 <= arr[i]) && (arr[i] <= 70)) {
result += 3;
}
else if ((71 <= arr[i]) && (arr[i] <= 73)) {
result += 4;
}
else if ((74 <= arr[i]) && (arr[i] <= 76)) {
result += 5;
}
else if ((77 <= arr[i]) && (arr[i] <= 79)) {
result += 6;
}
else if ((80 <= arr[i]) && (arr[i] <= 83)) {
result += 7;
}
else if ((84 <= arr[i]) && (arr[i] <= 86)) {
result += 8;
}
else if ((87 <= arr[i]) && (arr[i] <= 90)) {
result += 9;
}
}
printf("%d", result+leng);
}
for, if문 범벅으로 코드를 짰다...
너무 더러운것 같어.. 파이썬이라면 딕셔너리로 해결햇을 것 같은데 아쉽다.
다른 분들의 코드를 보니 switch&case로 코드를 정리하셨다.
2941번 크로아티아 알파벳
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void) {
char arr[101];
int leng;
scanf("%s", arr);
leng = strlen(arr);
printf("%d\n", leng);
for (int i = 0; i < leng; i++) {
if (arr[i] == '=') {
if (arr[i - 1] == 's') leng--;
if (arr[i - 1] == 'c') leng--;
if (arr[i - 1] == 'z') {
leng--;
if (arr[i - 2] == 'd') leng--;
}
}
//=으로 끝나는것
if (arr[i] == '-') {
if (arr[i - 1] == 'c') leng--;
if (arr[i - 1] == 'd') leng--;
}
// -
if (arr[i] == 'j') {
if (arr[i - 1] == 'n') leng--;
if (arr[i - 1] == 'l') leng--;
}
//j
}
printf("%d", leng);
return 0;
}
반례는 찾았는데 왜 틀렸는지 모르겟다...
dz=, z=를 입력하면 제대로 1이 뜨는데 ddz=z=를 입력하면 4가 나온다..
왜이러지