Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Python
- 현대자동차
- Java
- alogorithm
- 자바
- programmers
- cim
- 프로그래머스
- JavaScript
- 자바스크립트
- 현대
- boj
- re_lunchu
- Baekjoon
- 알고리즘
- 소프티어
- 탐욕법
- softeer
- 티스토리챌린지
- heapq
- Algorithm
- 딥러닝
- 백준
- cs공부
- GAN
- 오블완
- 토이프로젝트
- 힙큐
- 파이썬
- 스마트팩토리
Archives
- Today
- Total
eaz_coding
[Softeer] 스마트 물류 본문
문제
요약
문자열 안에 P 로봇의 위치에서 k 간격 사이에 있는 H만 집을 수 있을 때,
H를 집을 수 있는 로봇 P의 최대 개수를 구하시오.
원본
https://softeer.ai/practice/6279
Softeer - 현대자동차그룹 SW인재확보플랫폼
softeer.ai
풀이
처음에는 dfs로 풀었는데 최소 경우는 본인 위치에서 가장 먼 것을 골랐을 때이기 때문에
굳이 dfs로 모든 경우를 확인하기 보다는 가장 먼 위치의 하나를 고르면 최대 개수가 구해진다.
올바른 풀이에 근접하게 접근하는 실력은 많이 늘었는데
범위나 반복 break 조건 같은 부분만 더 신경 쓰면 될 것 같다.
import sys
input = sys.stdin.readline
n, k = map(int, input().split())
S = list(input().strip())
answer = 0
visited = [0] * n
for i in range(n):
if S[i] == "P":
visited[i] = 1
for j in range(i-k, i+k+1):
if 0 <= j < n and visited[j] == 0 and S[j] == "H":
visited[j] = 1
answer += 1
break
print(answer)
'eaz_algorithm' 카테고리의 다른 글
[Programmers] 다리를 지나는 트럭 (0) | 2024.03.19 |
---|---|
[Softeer] 동계 테스트 시점 예측 (2) | 2024.03.18 |
[Softeer] 자동차 테스트 (0) | 2024.03.13 |
[Softeer] 조립라인 (0) | 2024.03.12 |
[Softeer] 순서대로 방문하기 (0) | 2024.03.11 |