RIEN😚
이상한 나라의 개발자
RIEN😚
전체 방문자
오늘
어제
  • 분류 전체보기 (125)
    • Algorithm (68)
      • 알고리즘 (0)
      • Baekjoon (8)
      • 프로그래머스 (55)
      • HackerRank (5)
    • Android (30)
      • Project (1)
      • Error (2)
      • Studio (1)
      • Android (26)
    • Kotlin (6)
    • CS (4)
      • 네트워크 (2)
      • 데이터베이스 (2)
    • Front End (5)
      • React (1)
      • VUE (3)
      • Project (0)
      • 기타 (1)
    • 기록 (11)
      • 회고록 (6)
      • TIL (5)

블로그 메뉴

  • Github🔥
  • 포트폴리오🌹

공지사항

인기 글

티스토리

250x250
반응형
hELLO · Designed By 정상우.
RIEN😚

이상한 나라의 개발자

Algorithm/프로그래머스

[프로그래머스 > Lv2] 덧칠하기

2023. 3. 4. 14:04
728x90
반응형
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 문제

벽은 1 미터 길이의 구역 n 개로 나누고, 각 구역에 왼쪽부터 순서대로 1 번부터 n 번까지 번호가 붙어있습니다.

벽에 페인트를 칠하는 룰러의 길이는 m 미터이고, 룰러로 벽에 페인트를 한 번 칠하는 규칙은 다음과 같습니다.

  • 룰러가 벽에서 벗어나면 안 됩니다.
  • 구역의 일부분만 포함되도록 칠하면 안 됩니다.

 

[입력]

정수 n, m과 다시 페인트를 칠하기로 정한 구역들의 번호가 담긴 정수 배열 section

 

[출력]

룰러로 페인트칠해야 하는 최소 횟수를 return

 

2. 제한사항

  • 1 <= m <= n <= 100,000
  • 1 <= section 의 길이 <= n

 

3. 풀이

벽의 가장 앞에서 부터 시작해 비어있는 모든 벽을 칠해야 하는 문제입니다.

때문에 만약 비어있는 벽을 만났을 때 반드시 칠해야 한다는 선택지 밖에 없습니다. 😭

 

이를 이용해, 벽이 있어 있을 때는 m 만큼 칠해주고, 이미 페인트가 칠해져 있는 칸일 경우에는 pass 하면 됩니다.

 

이를 코드로 표현하면 아래와 같습니다.

4. 코드

Python
def solution(n, m, section):
    answer = 0
    dp = [1] * n
    for s in section:
        dp[s-1]=0
    
    i = 0
    while i < n:
        if dp[i] == 0:
            answer+=1
            i+=m
        else: i+=1
    return answer
반응형

'Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스 > Lv1] 바탕화면 정리  (0) 2023.03.04
[프로그래머스 > Lv1] 대충 만든 자판  (0) 2023.03.04
[프로그래머스 > Lv2] 혼자서 하는 틱택토  (0) 2023.03.03
[프로그래머스 > Lv2] 미로탈출  (0) 2023.02.16
[프로그래머스 > Lv1] 카드뭉치  (0) 2023.02.16
    'Algorithm/프로그래머스' 카테고리의 다른 글
    • [프로그래머스 > Lv1] 바탕화면 정리
    • [프로그래머스 > Lv1] 대충 만든 자판
    • [프로그래머스 > Lv2] 혼자서 하는 틱택토
    • [프로그래머스 > Lv2] 미로탈출
    RIEN😚
    RIEN😚
    안드로이드 / 코틀린 독학으로 취업하자!

    티스토리툴바