알고 보면 굉장히 단순한데
c언어를.. 코딩 자체를 오랜만에 하니까
입력 어떻게 받았는지 다 까먹고..
vscode에서 그냥 입력이 되길래 그냥 했다가 삽질 왕창하고
입력 어떻게 받아오는지 찾아봐서 해결했습니다..

입출력 정보가 이렇게 나와있어서..
예제에서 저렇게 나와있어서..
한 번에 전부 입력받고 나머지 출력하는건가 싶어서 2차원 배열도 갔다가 포인터도 갔다가..
입력을 scanf("%d %s", 변수들)로 받고 해결했습니다..
애초에 띄어쓰기로 입력 받는다고 했는데
vscode는
scanf("%c", i);
scanf("%s", t);
이렇게 적고 띄어쓰기 하면 똑같이 읽어서.. 아니지 문제를 똑바로 읽지 않은게 잘못이죠 엉엉

그래서 자꾸 엔터로 쓴 공백을 읽어와서..
fflush(stdin); 도 찾아보고
scanf에서 공백을 읽어올 때 해결하는 방법은 이 블로그를 봤는데
https://velog.io/@mttw2820/scanfc%EC%9D%98-%EB%AC%B8%EC%A0%9C
scanf("%c")를 2번 쓰면 다음으로 넘어갈 때 쓰는 엔터, 스페이스바까지 읽어버리니까
입력 버퍼값을 지워버리면 된다고 하네요
*저 블로그에서는 gcc는 안된다고 했는데 vscode gcc 환경에서 성공함!
다른 블로그에서도 말하고 있지만 요점은 반복문의 활용!
다들 문자열의 길이를 사용해서 반복의 갯수를 지정하던데
전 그냥.. 맨 처음에 생각난게 배열이라 NULL값이 나올 때까지 while문으로 돌렸습니다.
결과적으로 작동은 같으니까!
#include <stdio.h>
int main (void)
{
char inputValue[20] = {};
int testCase;
int repeat;
scanf("%d", &testCase);
for(int i = 0; i < testCase; i++)
{
scanf("%d %s", &repeat, inputValue);
int count = 0;
while (inputValue[count])
{
for(int q = 0; q < repeat; q++){
printf("%c", inputValue[count]);
}
count++;
}
printf("\n");
}
}
아무튼.. 별거 아닌데 시간 오래 잡아먹어서 슬프고..
요즘 변수명을 정성껏 지으려고 했는데
암만 생각해도 좋은게 생각이 안나서
역시 다른 사람들의 예제를 많이 보는게 좋겠다..~
가 결론입니다.
'BAEKJOON' 카테고리의 다른 글
[백준] 1157 - 단어 공부 (0) | 2022.11.24 |
---|---|
[백준] 10809 - 알파벳 찾기 (0) | 2022.11.21 |
[백준] 4673 - 셀프 넘버 (0) | 2022.09.18 |