[TIL] 코테 Review

yoonseok choi·2022년 9월 5일
0

좌석구매

  • 문제설명

공연을 관람하기 위한 100,000 x 100,000 크기의 격자 모양의 좌석이 있습니다
이 공연장의 표를 구매하기 위해 K명의 관람객이 매표소에 한 줄로 서 있습니다.
이때, 관람객은 자신이 원하는 좌석에만 공연을 관람하려고 합니다.
각 관람객은 매표소에서 자신이 원하는 좌석의 좌표를 말하고,
아직 아무도 구매하지 않은 좌석이면 해당 좌석의 표를 삽니다.
그러나 만약 이미 구매된 좌석이면 공연 관람을 포기하고 집으로 돌아갑니다.
줄을 서 있는 사람들이 구매하려는 좌석의 좌표가 순서대로 담겨있는
배열 seat가 매개변수로 주어질 때, 표를 구매하는데 성공한 사람의 수를 return 하도록
solution 함수를 완성해 주세요.

  • 제한사항
  • 줄을 서 있는 관람객의 수는 1 이상 100,000 이하입니다.
  • seat에는 관람객이 구매하려는 좌석의 좌표가 가장 앞에 있는 사람부터 순서대로 들어있습니다.
  • seat의 각 원소는 관람객이 구매하려는 좌석의 좌표이며, [가로 좌표, 세로 좌표] 순입니다.
  • 가로 좌표, 세로 좌표의 범위는 1 이상 100,000 이하의 정수입니다.
  • 입출력 예
seatresult
[[1,1],[2,2],[3,3]]3
[[1,1],[2,1],[1,2],[3,4],[2,1],[2,1]]4
  • 입출력 예 설명
    • 입출력 예 #1
      • 가장 앞사람부터 순서대로 (1,1), (2,2), (3,3) 위치의 좌석을 구매하여 총 3명의 관람객이 구매에 성공했습니다.
    • 입출력 예 #2
      • 가장 앞사람부터 순서대로 (1,1), (2,1), (1,2), (3,4) 위치의 좌석을 구매하였습니다.
      • 5,6번째 관람객이 구매하려는 좌석은 2번째 관람객이 이미 구매하였으므로 5,6번째 관람객은 집으로 돌아갑니다.
      • 따라서 총 4명의 관람객이 구매에 성공했습니다.

풀이


책상의 재고

  • 문제설명

OO 가구점에서는 책상이 하루에 1개씩 판매됩니다.
현재 N개의 책상을 가지고 있고, M일에 한 번씩 도매점으로부터 책상이 1개씩 입고됩니다.
책상의 재고가 0이 될 때까지 며칠이 걸리는지 return하는 solution 함수를 완성해 주세요.
단, 재고가 0이 될 때, 도매점으로부터 입고되는 날이면 재고가 다시 1개 늘어납니다.

  • 제한사항
  • N : 100 이하의 자연수
  • M : 2보다 크거나 같고 100보다 작거나 같은 자연수
  • 입출력 예
NManswer
223
9313
  • 입출력 예 설명
  • 입출력 예 #1
    • 현재 2개의 책상을 가지고 있으므로 2일째 되는 날 재고가 0이 됩니다. 재고가 0이 되는 날이 도매점으로부터 입고되는 날이므로 재고가 1개 늘어, 최종적으로 다음 날 3일째 재고가 0이 됩니다.
      2 -> 1(1일째) -> 0+1(2일째, 입고되는 날) -> 0(3일째)
  • 입출력 예 #2
    • 다음과 같은 과정을 거쳐 13일째 재고가 0이 됩니다.
      9 -> 8(1일째) -> 7(2일째) -> 6+1(3일째, 입고되는 날) -> 6(4일째) -> 5(5일째) -> 4+1(6일째, 입고되는 날) -> 4(7일째) -> 3(8일째) -> 2+1(9일째, 입고되는 날) -> 2(10일째) -> 1(11일째) -> 0+1(12일째, 입고되는 날) -> 0(13일째)

진법 표현하기

  • 문제 설명

철수는 N(2<=N<=26)진법 수를 표현하는데 필요한 N개의 수를 서로 다른 임의의 소문자 알파벳들로 바꿔 표현하려고 합니다. 그러기 위해 각 수를 어떤 알파벳으로 표현할 것인지에 대한 규칙을 표로 만들어 보았습니다. 예를 들어, 5진법 수를 아래와 같은 규칙으로 나타낸다고 하겠습니다.
위의 규칙을 적용하면 5진수 120은 otz가 되고, 5진수 33은 hh가 됩니다.
철수는 음이 아닌 두 개의 N진수 A,B(A>=B)를 자신만의 규칙으로 적었고, A - B를 계산하고 싶습니다. 규칙 rule과 두 수 A,B를 바꿔 표현한 값이 주어질 때,
철수의 규칙대로 나타낼 때의 A-B를 return하도록 solution 함수를 완성해주세요.
(rule[i]는 한 자릿수 i를 철수의 규칙으로 나타낸 값이며, 숫자는 0으로 시작하지 않습니다.)

  • 제한 사항
  • 제한사항
    • rule의 길이는 2이상 26이하입니다.
    • AB의 길이는 1이상 10이하입니다.
    • rule, A, B는 알파벳 소문자만 포함합니다.
    • AB에 포함되는 각 알파벳은 rule에 딱 한 번 등장합니다.
    • 알파벳으로 나타내기 전의 AB보다 크거나 같습니다
  • 입출력 예
ruleABresult
zothfotzhhht
abbaaba

택시 나눠타기

  • 문제 설명

철수의 생일을 맞아 XX 식당에서 생일 파티를 하기로 했습니다. 생일 파티를 하는 XX 식당까지는 택시를 타고 이동하기로 했습니다. 철수의 친구들은 친한 친구들끼리 그룹을 구성하고 있으며, 한 사람당 하나의 그룹에만 속해 있습니다. 택시를 탈 때는 반드시 같은 그룹에 속한 친구들은 같은 택시를 타기로 했으며, 한 택시에는 여러 그룹이 함께 탈 수 있습니다. 단, 택시에는 최대 4명까지 함께 탑승 가능합니다. 각 그룹의 구성원 수가 들어있는 배열 s가 매개변수로 주어질 때, 필요한 택시의 수의 최솟값을 return 하도록 solution 함수를 완성해주세요.

  • 제한사항
  • s는 각 그룹별 구성원 수가 들어있는 배열이며, 배열의 길이(그룹의 수)는 100,000 이하의 자연수입니다.
  • 각 그룹의 구성원 수는 4 이하의 자연수입니다.
  • 입출력 예
soutput
[1,2,4,3,3]4
[2,3,4,4,2,1,3,1]5
  • 입출력 예 설명
  • 입출력 예 #1
    • 한 그룹당 하나씩의 택시를 이용한다면 총 5대의 택시가 필요합니다.그러나 다음과 같이 탑승한다면 4대의 택시만으로도 충분합니다.
      • 첫 번째 그룹(1명)과 네 번째 그룹(3명)이 같은 택시를 탑니다.
      • 그 외 나머지 그룹은 모두 다른 택시를 탑니다.
  • 입출력 예 #2
    • 한 그룹당 하나씩의 택시를 이용한다면 총 8대의 택시가 필요하지만, 다음과 같이 탑승한다면 5대의 택시만으로도 충분합니다.
      • 첫 번째 그룹(2명)과 다섯 번째 그룹(2명)이 같은 택시를 탑니다.
      • 두 번째 그룹(3명)과 여섯 번째 그룹(1명)이 같은 택시를 탑니다.
      • 일곱 번째 그룹(3명)과 여덟 번째 그룹(1명)이 같은 택시를 탑니다.
      • 그 외 나머지 그룹은 모두 다른 택시를 탑니다.
profile
Concilio et Labore ( 지혜와 노력으로 )

0개의 댓글