Strong Root

난이도 ★


문제를 보시려면 여기를 클릭




틀리기 쉬운 입출력 예제

입력

출력 

4

80 ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB

1 A

3 ABC

1 ABC

1 ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA

3 AB

4 BC




힌트

 쉬운 문제이지만 풀이 방식에 따라 성능 차이가 크다. 개인적으로 내 코드에 굉장히 만족한다. 아마도 더 깔끔한 방법은 없을 것 같다.

 → %s가 NULL문자 앞까지만 출력하는 것을 이용한다.

① string[M - 1] = NULL 을 넣어준다.

② printf("%s%s", string, string + M); 으로 출력한다.




이하는 코드입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
#include <string.h>
 
#pragma warning(disable:4996)
 
int main() {
    // get N
    int N;
    scanf("%d\n", &N);
 
    for (int i = 1; i <= N; i++) {
        // get M, s
        int M;
        char s[82];
        memset(s, 0sizeof(s));
        scanf("%d %s", &M, s);
 
        // set s[M-1] = NULL
        s[M - 1= NULL;
 
        // print (i, s[0 ~ M-2] + s[M ~])
        printf("%d %s%s\n", i, s, s + M);
    }
 
    return 0;
}
cs

'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글

Conversions(CONVERT) 정답 코드  (0) 2015.10.09
Endians(ENDIANS) 정답 코드  (0) 2015.10.09
터보모드(TURBOMODE) 정답 코드  (0) 2015.04.10
HOTSUMMER 정답 코드  (0) 2015.04.10
게임판 덮기(BOARDCOVER) 정답 코드  (0) 2015.02.28