const char* 형태의 문자열을 활용한 획기적인 방법?

연속된 데이터를 출력문에 대한 코드를 작성하다보면,
마지막 출력의 경우에는 줄바꿈을 하고 싶을 경우가 있다.

for (int i=0; i<n; i++)
    if (i == n - 1)
        cout << a[i] << "\n";
    else
        cout << a[i] << " ";

위와 같이 작성하는 경우가 많은데, 이것을

for (int i=0; i<n; i++)
    cout << a[i] + " \n"[i==n-1];

이렇게 바꿔서 작성할 수 있다.


const char* tmp = " \n"; 형태로 볼 수 있고, 
tmp[0], tmp[1]을 사용하듯이 " \n"[0], " \n"[1]로 보는 것이다.

특정 규칙을 갖는 문자열을 작성해두고, 인덱스를 넣어서 활용하는 방법도 있다.
예) "122333444455555..."[n%k];

댓글

이 블로그의 인기 게시물

[PS] BOJ 20543번 폭탄 던지는 태영이

프로그래밍에서 실수형의 부정확성

프로그래머스 2019 윈터코딩 온라인 테스트를 보았다. (풀이)