난이도에 관하여
- 첫 모의 퀴즈의 난이도는, “이산 선생님께서 정말 쉽게 냈다고는 하지만, 그게 정말로 본인한테는 쉽고, 너희들한테는 쉽지 않다면?” 이라는 주제로, 평균 3개 정도를 맞출 수 있을 정도의 난이도로 넣어뒀음.
- 그리고, 특히 2번도 풀어봤던 문제의 응용라지만, 까다로울 수 있도록 제작하였음
- 그래서 퀴즈를 풀다가 어느 한 쪽에서 막혀서, 여기서 끙끙대다가 뒤에 문제를 못푸는
대참사가 발생할 수도 있어 보임
- 이를 모의 시험에서 한 번 느껴보고, 한 문제에 너무 오래 잡혀있지 않도록 하자
- 그리고 퀴즈는 난이도 순이 아닐 수 있다. 뒤쪽이 더 쉬울 수도 있다.
- 특히나 달팽이는 잘 외워 갔을테니, 달팽이만큼은 반드시 풀도록 하자.
1. SASA n번 출력하기
- 이건 솔직히… 못풀면 안됨.
- 그냥 for문으로 SASA 출력을 n번 하자
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
for (int i=1; i<=n; i++)
printf("SASA\n");
}
2. 런 랭스 부호화 2
-
이 문제의 개념을 가져와서 만들었음 : https://code.sasa.hs.kr/problem.php?cid=2324&pid=5
-
하지만 이번 문제는 이미 압축된 문자열을 풀어줘야 하는 문제
- A5B3이라면, AAAAABBB로 출력해야 함
- 정수가 너무 커지면 출력이 너무 많아지므로, 한 번에 출력되는 글자는 1천자 이하로 제한함
-
그러면 입력받은 문자열로 하나의 글자와 뒤에 있는 숫자들을 입력받을 수 있어야 함
-
하지만 이것도 너희들은 해 본적이 있음:
-
입력받은 문자열은 s에 저장되어있다고 가정한다
-
두 변수를 정의하자
- 현재 읽은 알파벳을 저장하는
c
- 숫자들의 합을 기록하고 있는
cnt
- 처음엔 글자일 수 밖에 없으므로, c는 s[0]로 정의하자
-
그리고 for문을 돌리면서 다음과 같이 동작한다
- 만약 i번째 글자가 숫자라면, 현재
cnt에서 10을 곱한 뒤, s[i]번째의 글자를 실제 숫자만큼 더하자
- 이는
s[i]-’0’ 이라는 코드로 수행할 수 있다
- 만약 숫자가 아니라면, 글자라는 소리다.
- 그러면 글자
c 를 cnt 번 출력하면 된다
- 그리고
c 는 s[i]로 갱신해주고, cnt 는 다시 0으로 초기화 해준다