😈 알고리즘/💻 백준

💻 8958번 문제 : OX 퀴즈

Buᐢ༝ᐢy 2022. 9. 28. 07:54
8958번: OX퀴즈
https://www.acmicpc.net/problem/8958
#include <stdio.h>
#include <string.h>

int main()
{
	int T = 0;
	scanf("%d", &T);
	char array[80] = {};

	for (int i = 0; i < T; i++)
	{
		scanf("%s", array,sizeof(array));
		int count = 0;
		int sum = 0;

		for (int j = 0; j < strlen(array); j++)
		{
			if (array[j] == 'O')
			{
				count++;
			}
			else
			{
				count = 0;
			}
			sum += count;
		}
		printf("%d\n", sum);
	}
}
메모리 (KB)시간 (ms)코드 길이 (B)
11120381

📕 오답 노트

scope 개념을 잘 이해할 필요가 있다. 이전부터 안 좋은 습관이 for문을 돌렸을 때 각 변수들이 어디에 정보가 담기는지 헷갈렸다. 이전에 작성한 코드는 대충 이랬다.

scanf("%d", 테스트 케이스);

for (테스트 케이스만큼 반복)
{
	for (배열의 최대값 중 0이 아닌 값만큼 입력)
	{
		scanf("%d", 아무 값);
	}
	...
}

코드를 따로 저장하지 않아 비슷하게 적어보았다. 이렇게 되면 문제대로 풀게 되면 사실 말이 안 된다. 배열 중 0이 아닌 값 만큼 반복을 해서 문제대로 진행을 해야 하는데, 배열의 값을 넣는다니…

아무튼 이전부터 이중 for문을 쓰면 변수들이 어떤 범위까지 값이 남아있는지를 잘 이해못한다는 것을 인지하고 문제를 풀어야겠다.


Uploaded by N2T