(틀림 ) 1138. 한줄로 서기

·2026년 3월 4일

백준 알고리즘

목록 보기
327/341

아래 내용 읽고 결론

  • 키 : 0 ,1,2,3

    1. 키가 제일 작은 친구 0부터 배치하는데, 나보다 작은 친구는 없으니까. 내가 기준이 되겠네. -> 현재 최적 선택
      (왜냐하면 나중에 키 큰 친구가 나의 오른쪽에 있어도 나는 영향 안 주지 않으니까 내 자리를 뺏지는 않겠다!)
    1. 1인 친구 입장에서 0인 친구는 왼쪽에 키 큰 카운팅에 영향 주지 않는다.
      즉 0번 친구가 않은 자리를 굳이 뺏을 필요가 없다.
      "나도 왼쪽에 2명이라고 하더라도, 그러면 0번 한테 양보해서 내가 한칸 더 오른쪽으로 가자!"

틀림 : 260304

  • 첫 번째 해결 전략
    : 최대 10개이고, 각 키가 다르기 때문에 10! 구함.

  • 10! 가운데서 2중 for문 하게 되면 360만 X 10 X 10-> 시간초과,,

왜 작은 친구들부터 선택해?

  • 키가 오름차순으로 정렬된 상태에서 생각해보자.

-> 키가 작은 친구부터 배치하게 되면, 그 이후에 키가 큰 친구는 작은 친구가 배치된 pos가 (이미 확정이므로,) 나의 왼쪽 카운팅 번호에 영향을 주지 않기 때문에 그리디의 현재 최적 선택이라 할 수 있다.

  • 구글링


왜 그리디냐?

  • 어떠한 선택과정이 뒤에 오는 선택 과정에 영향을 주지않으면 그리디 라고 함.

-> 여기서는 키가 작은 친구부터 세우게 하면,

  • 키가 큰 친구들의 입장에서는 키가 작은 친구들이 왼쪽에 있더라도 카운팅에 영향되지 않음.
  • 문제에서 주어진게 나를 기준으로 왼쪽에 키가 큰 사람의 개수이다.
  • 그런데 코딩에서는 작은 친구들의 위치도 중요하다.


궁금증

: 키가 작은 친구들의 위치도 중요한데, 다른거에 영향을 가지 않는다? 라고 할 수 있을까?

  • 구글링

-> 내용을 보면, 작은 친구들이 선택한 위치가 키가 큰 사람이 선택할 위치에 중요하지만,
작은 친구들 먼저 자리에 앉게 되면, 키 큰 친구들 입장에서는
그 자리는 확정된 상황으로 인식하므로, 영향을 주지 않는다! 는 것이다.


코드 작성 영향인데?

  • 구글링
profile
🔥🔥🔥

0개의 댓글