220322 처음으로 문제 풀어본 알고리즘


알고리즘을 쉽게 다가가기위해 '누워서 읽는 알고리즘' 라는 책을 읽기 시작했다. 그러다가 '어? 이거 재미있겠다 해서 풀어본 문제'이다. 책 저자 임백준님은 이미 엄청난 내공이 있으신 분이셔서 책의 제목이 '누워서 읽는 알고리즘'라고는 하지만, 나에게는 누워서는 읽지 못하고, 앉아서 읽어야 하는 정도의 어려움있는 내용도 많은 것 같다. 그래도 다른 알고리즘 책보다는 조금 더 쉽게, 부담없이 다가올 것 같은 느낌일 것 같아서 읽는중이다.

 


 

아래의 책의 내용을 인용하자면 이 문제를 만든 사람은 '상대성 이론'으로 유명한 아이슈타인이라고 알려져 있다고한다. 다만, 확인된 바는 없다고한다. 사물을 기억할 수 있는 두뇌의 메모리 용량이 특별하게 큰 사람이 아니라면 아마 종이와 연필을 이용해서 논리와 흐름을 하나씩 따라가는 것이다. 제한 시간은 3분이다.
라고 했지만 나는 20분이 걸렸다. 도데체 이게 몇 배야 😅 하지만 포기하지 않았으니까!  

 

 

누워서 읽는 알고리즘

 

  • 문제/전제 :
    • 서로 색이 다른 5채의 집이 있다.
    • 각 집에서는 출신 나라가 서로 다른 사람이 살고 있다.
    • 각 집주인은 5가지 다른 종류의 음료수를 마시고, 상표가 다른 담배를 피우며, 애완동물을 한 마리씩 기른다.
    • 아래에 주어진 정보를 토대로 '금붕어'를 기르고 있는 사람은 누구인지 밝히는 문제다.
    • 종이와 연필을 이용하지 않고 눈으로만 답을 찾을 수 있는 사람은 '멋진 사람'이라고했다.
      (하지만 나는 종이와 연필을 이용했기에, '나는 멋진' 사람은 못되고 '노력한 사람'은 됐고 생각한다.)

 

  • 조건 :
    1. 영국인은 빨간 집에 산다.
    2. 스웨덴인은 개를 기른다.
    3. 덴마크인은 차를 마신다.
    4. 초록 집은 하얀 집의 왼쪽 집이다. (후술하겠지만, 인접한 왼쪽 집을 말한다.)
    5. 초록 집에 사는 사람은 커피를 마신다.
    6. 펠멜 (Pall mall) 담배를 피우는 사람은 새를 기른다.
    7. 노란 집 사람은 던힐 (Dunhill) 담배를 피운다.
    8. 한 가운데 사는 사람은 우유를 마신다.
    9. 노르웨이인은 첫 번째 집에 산다.
    10. 블렌드 (Blend) 담배를 피우는 사람은 고양이를 기르는 사람의 옆집에 산다.
    11. 말을 기르는 사람은 던힐 담배를 피우는 사람 옆집에 산다.
    12. 블루매스터 (Blue master) 담배를 피우는 사람은 맥주를 마신다.
    13. 독일인은 프린스 (Prince) 담배를 피운다.
    14. 노르웨이인은 파란 집 옆에 산다.
    15. 블렌드 담배를 피우는 사람은 생수를 마시는 사람과 이웃이다.

  • 내가 풀은 답안 : 

 

 

나무위키에서 더 자세하게볼 수 있다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기