다항식 더하기, 수리공 항승

GUNHEE LEE·2024년 1월 30일
0

coding_test

목록 보기
2/6

프로그래머스

[다항식 더하기]

  • ‘+’로 구분하여 리스트에 담기 = .split(’+’)
  • 가장 마지막 원소가 ‘x’인 경우 x의 계수값에, 아닌 경우 상수값에 더해준다.
  • 계수의 합이 0인 경우, 상수만을 출력한다.
  • 계수의 합이 1인 경우, 1x 대신 x를 출력한다.
  • 원소가 숫자인지 검사하고 싶다 = .isdigit()
  • 원소가 문자인지 검사하고 싶다 = .isalpha()
  • level 0 치고는 까다로웠던 문제

백준

[수리공 항승]

아이디어는 테이프를 이어붙인 범위 내에 구멍이 존재하는지 여부를 검사하는 것.

필요한 테이프의 길이의 총합을 구해서 필요한 테이프의 개수를 구한다 X

테이프가 필요할 때마다 개수를 한 개씩 추가한다.

필요할 때를 어떻게 아느냐? 시작지점부터 테이프 길이를 붙인다. 테이프 길이 안에 포함되면 기존의 테이프로 막을 수 있다.구멍이 1,2 테이프 길이가 2라면range(1, 3)까지는 기존 테이프로 막을 수 있음.하지만 3부터는 불가능하기 때문에 다음 구멍이 3을 넘어가면 그 값부터 다시 출발하도록 한다.

# 11백준
N, L = map(int, input().split())
hole = sorted(list(map(int, input().split())))

start = hole[0]
count = 1

for h in hole[1:]:
    if h in range(start, start + L):
        continue
    else:
        start = h
        count += 1
print(count)
  • 의외로 간단했던 문제, 아이디어 접근을 잘못했다.
profile
새싹 개발자

0개의 댓글