https://www.acmicpc.net/problem/10798
문제
- 한 줄에 최대 15개의 빈칸 없이 연속된 글자로 이루어진 단어.
- 1번의 단어를 5개를 받음.
- 다섯 개의 단어를 세로로 읽음.
- 세로로 읽은 글자를 공백없이 출력.
최종 코드
#include <stdio.h>
int main(void) {
char word[5][15] = { 0, }, result[75] = { 0, }; // 15글자 단어 5개, 15*5 = 75인 결과값 배열 1개.
int count = 0;
for (int i = 0; i < 5; i++) { // 단어를 배열의 i행에 입력받음
scanf("%s", word[i]);
}
for (int i = 0; i < 15; i++) { // 각 배열의 j행의 i열 단어를 result배열의 count자리에 대입.
for (int j = 0; j < 5; j++) {
if (word[j][i]) { // word[j][i]에 문자가 있을 때 true word[j][i]가 공백이라면 false
result[count++] = word[j][i];
}
}
}
count = 0;
while (result[count]) { // result를 출력
printf("%c", result[count]);
count++;
}
return 0;
}
이런 문제는 배열을 몇차원을 쓰는지 정하는 게 제일 중요한 것 같다
1차원 배열으로 해보다가 어쩌지 하고 보니 카테고리가 2차원 배열이었다.
처음부터 잘 생각했으면 됐을 걸 몰라서 좀 오래 걸렸다.
'백준 문제 풀이 > 백준 (C)' 카테고리의 다른 글
C 백준 11653 소인수분해 (약수, 배수와 소수) (0) | 2024.06.30 |
---|---|
C 백준 1193 분수찾기 (일반 수학1) (0) | 2024.06.29 |
C 백준 2740 행렬 곱셈 (분할 정복) (0) | 2024.06.29 |
C 백준 1427 소트인사이드 (정렬) (0) | 2024.06.29 |
C 백준 18258 큐 2 (큐) (0) | 2024.06.29 |