Shiny Sky Blue Star

백준 문제 풀이/백준 (C)

C 백준 10798 세로읽기 (2차원배열)

gamja00 2024. 6. 29. 22:49

 

https://www.acmicpc.net/problem/10798

 


문제

  1. 한 줄에 최대 15개의 빈칸 없이 연속된 글자로 이루어진 단어.
  2. 1번의 단어를 5개를 받음.
  3. 다섯 개의 단어를 세로로 읽음.
  4. 세로로 읽은 글자를 공백없이 출력.

 

최종 코드

#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차원 배열이었다.
처음부터 잘 생각했으면 됐을 걸 몰라서 좀 오래 걸렸다.