728x90
실패코드
#include<stdio.h>
#include<stdlib.h>
int tenup(int a)
{
int k = 1;
for (int i = 0; i < a; i++)
k *= 10;
return (k);
}
int where_is_alph(char a, char* arr, int len)
{
int i = 0;
int result = 0;
if (len == 0)
return 0;
while (1)
{
if (arr[i] == a)
result += tenup(len - i - 1);
if (i == 7)
break;
i++;
}
return (result);
}
void sort_arr(int* arr)
{
int tmp;
for (int i = 0; i < 26; i++)
{
for (int j = 0; j < 25-i; j++)
{
if (arr[j] < arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}//큰순 으로 정렬
int main()
{
int input;
scanf("%d", &input);
char arr[10][8];
int len[10] = { 0 };
int all_alpha[26] = { 0 };//알파벳 A부터 J까지 0123456789 속았다 A부터 Z다
for (int i = 0; i < input; i++)
{
scanf("%s", arr[i]);
len[i] = strlen(arr[i]);
}
for (int i = 0; i < input; i++)
{
for (int j = 0; j < 26; j++)
{
all_alpha[j] += where_is_alph('A' + j, arr[i], len[i]);//같은 문자가 나오는경우를 어떻게 처리할까
}
}
sort_arr(all_alpha);
long long sum=0;
for (int i = 0; i < input; i++)
{
sum += (all_alpha[i] * (9-i));
}
printf("%d", sum);
}
이 문제가 안 풀린다.. 왤까
성공코드
#include<stdio.h>
#include<stdlib.h>
int tenup(int a)
{
int k = 1;
for (int i = 0; i < a; i++)
k *= 10;
return (k);
}
int where_is_alph(char a, char* arr, int len)
{
int i = 0;
int result = 0;
while (1)
{
if (arr[i] == a)
result += tenup(len - i-1);
if (i == 7)
break;
i++;
//printf("%d result:%d\n",i, result);
}
//printf(" pppppresult:%d\n", result);
return (result);
}
void sort_arr(long long* arr)
{
int tmp;
for (int i = 0; i < 26; i++)
{
for (int j = 0; j < 25-i; j++)
{
if (arr[j] < arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
int main()
{
int input;
scanf("%d", &input);
char arr[10][8];
int len[10] = { 0 };
long long all_alpha[26] = { 0 };
for (int i = 0; i < input; i++)
{
scanf("%s", arr[i]);
len[i] = strlen(arr[i]);
}
for (int i = 0; i < input; i++)
{
for (int j = 0; j < 26; j++)
{
//printf("1111aaaaaaaaaa%d:%lld\n", i, all_alpha[j]);
all_alpha[j] += where_is_alph('A' + j, arr[i], len[i]);
//printf("1111aaaaaaaaaa%d:%lld\n", i, all_alpha[j]);
}
}
sort_arr(all_alpha);
long long sum=0;
for (long long i = 0; i < 10; i++)
{
//printf("aaaaaaaaaa%lld:%lld\n", i, all_alpha[i]);
sum += (all_alpha[i]*(9-i));
}
printf("%lld\n", sum);
}
728x90
'알고리즘 기초시절' 카테고리의 다른 글
백준 (C언어)백준 10757번 큰수 A+B문제 리버스 사용 (0) | 2023.01.04 |
---|---|
백준 (C언어)백준 1002번 터렛 원의 내접 외접 조건문제 (0) | 2023.01.04 |
백준 (C언어)백준 1331번 구현 알고리즘 시뮬레이션(나이트) (0) | 2023.01.04 |
백준 (C언어)백준 14503 로봇청소기(구현 시뮬레이션 맵탐색) (2) | 2023.01.04 |
백준 (C언어)백준 10828번 스택 스택 구현문제 (0) | 2023.01.04 |