기본 콘텐츠로 건너뛰기

러디어드 키플링(Rudyard Kipling) - 만약에(If)

만약에(If)

                                                          -러디어드 키플링


만약 모두가 이성을 읽고 너를 탓할 때
냉정을 유지할 수 있다면

만약 모두가 너를 의심할 때
네 자신을 믿고 그들의 의심마저 이해해줄 수 있다면


만약 기다리면서도
기다림에 지치지 않을 수 있다면
남에게 속더라도, 남을 속이지 않으며
미움을 받더라도, 미워하지 않으며
그러면서도 너무 선량한 척하지도,
너무 현명한 척하지도 않는다면

만약 꿈을 꾸면서도 꿈의 노예가 되지 않을 수 있다면
만약 생각하면서도 생각을 목표로 삼지 않을 수 있다면
만약 성공과 실패를 만나더라도
두 가지를 똑같이 대할 수 있다면

만약 네가 말한 진실이 악인들에 의해 왜곡되어
어리석은 자들을 옭아매는 덫이 되어도 참을 수 있다면
평생을 바친 일들이 무너지는 것을 보고도
낡은 연장을 들고 그것들을 다시 일으켜 세울 수 있다면

만약 네가 쌓아올린 모든 것을 걸고
단 한 번의 도박에 걸 수 있다면
다 잃고 처음부터 다시 시작할 수 있고
잃은 것에 대해 한마디 불평도 하지 않는다면

만약 모든 것을 잃은 후에도 변함없이
네 심장과 신경과 힘줄이 널 위해 일할 수 있다면
남은 거라곤 "버텨!"라고 말하는 '의지'밖에 없을 때까지
여전히 버틸 수 있다면

만약 군중과 이야기하면서도 자신의 덕을 키질 수 있다면
왕과 함께 걸으면서도 오만하지 않을 수 있다면
만약 적이든 친구든 너를 해치지 않게 할 수 있다면
만약 모두를 중하게 여기되 누구에게도 지나치게 치우지지 않는다면

만약 가차없이 흐르는 1분을 
60초 달리기로 가득 채울 수 있다면

이 세상과 그 안의 모든 것이 너의 것이며
비로소 너는 '어른'이 되는 것이다.

---------------------------------------------------------------------------------------

제가 좋아하는 시

댓글

이 블로그의 인기 게시물

좌표압축

알 고리즘을 풀다 보면 좌표압축이라는 테크닉이 필요합니다. 저는 좌표압축을  "순위가 중요한 알고리즘에서, 입력값의 갯수보다 입력값의 범위가 클 때 사용하는 방법",  이라고 생각하고 있습니다. 1차원의 좌표로 예를 들어보겠습니다. n개의 x값 을 입력 받아, 입력 중 두개의  x1,x2를 선택하여 사이에 존재하는 점의 개수를 구하는 작업이 있다고 가정합시다. x의 범위는 int형의 범위인 -2^31 ~ 2^31-1 이고 중복은 없습니다. n은 5000 이하입니다. 입력은 n : 7, -2^31, -10000, 0 , -2000, 3, 6, 30000 , x1 = -10000, x2 = 30000 대략적으로 보면 그림과 같이 나타나게 됩니다. x1,x2 사이의 값을 구하게 되면 4개의 값이 나오게 됩니다. 이 경우 위의 값들을 아래와 같이 순위를 유지하면서 바꿔주어도 문제를 풀 수가있습니다. 이렇게   바꿔서 풀 수 있는 이유는 값보다 값의 순위가 중요하기 때문 입 니다. 압축좌표가  필요한 예 로, 카카오 코드 페스티벌 5번 캠핑 문제가 될 수 있습니다. 이 경우 좌표  x,y의 범위는 0 ~ 2^31-1  이지만, 입력받는  좌표의 개수는 최대 5000개  입니다. 만약 입력의 좌표를 그대로 반영하여 문제를 푼다고 하면 배열의 크기가 2^31-1 개가 되어야 합니다. 게다가 2차원으로.. 못풉니다. 탐색하다가 시간다 끝날꺼에요. 하지만 입력이 최대의 개수가 최대 5000이라고 했으니 좌표압축을 이용해 입력받은 좌표를 0~5000 으로 매치시키고 풀게되는 것 입니다.