_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 덧칠하기 파이썬(Python)
코딩테스트

[코딩테스트] 프로그래머스 덧칠하기 파이썬(Python)

2023. 3. 3. 11:24
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/161989

 

프로그래머스

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

programmers.co.kr

def solution(n, m, section):
    wall = [i+1 for i in range(n)]
    paint = set(wall) - set(section)
    count = 0
    for i in section:
        if i not in paint:
            roller = wall[i-1:i-1+m]
            paint.update(roller)
            count += 1
    return count

저는 집합(set)자료구조를 이용하여 문제를 해결하였습니다.

 

초기에 설정하는 변수는 아래와 같습니다.

  • wall : 전체 벽
  • paint : 페인트가 칠해져있는 벽
  • count : 최소 횟수를 저장할 변수

section을 반복하면서 칠해야하는 벽(i) 을 추출합니다.

 

i벽이 paint에 존재하지 않는다면, 즉 페인트 칠이 되어 있지 않다면
i벽부터 m 길이 만큼의 roller를 생성하고 paint.update()를 하여 페인트 칠을 해줍니다.

 

그리고 count 변수를 1증가 시킵니다.

 

section을 모두 확인했다면 count변수를 반환해줍니다.

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 바탕화면 정리 파이썬(Python)  (0) 2023.03.06
[코딩테스트] 백준 암호 만들기 파이썬(Python)  (0) 2023.03.06
[코딩테스트] 프로그래머스 정수 삼각형 파이썬(Python)  (0) 2023.03.02
[코딩테스트] 백준 영단어 암기는 괴로워 파이썬(Python)  (0) 2023.02.28
[코딩테스트] 백준 비밀번호 발음하기 파이썬(Python)  (0) 2023.02.27
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 바탕화면 정리 파이썬(Python)
    • [코딩테스트] 백준 암호 만들기 파이썬(Python)
    • [코딩테스트] 프로그래머스 정수 삼각형 파이썬(Python)
    • [코딩테스트] 백준 영단어 암기는 괴로워 파이썬(Python)
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바