일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kotlin
- 알고리즘
- programers
- 개발
- 플러터
- 코틀린
- 프로그래머스
- MVVM
- Flutter
- DART
- softeer
- 소프티어
- 백준
- 안드로이드
- GDSC
- baekjoon
- 스위프트
- java
- 다트
- 코테
- 자바
- 아마존 웹 서비스
- VSCode
- Python
- 머신러닝
- aws
- 현대sw
- SWIFT
- Android
- 파이썬
- Today
- Total
조준장 개발자 생존기
[softeer] 소프티어(파이썬): 스마트 물류 ★★★ 본문
문제
Softeer
제한시간 : C/C+/Java/Python(2초) | 메모리 제한 : 512MB 현대자동차그룹은 주요 물류센터에 각종 자동화 기기를 도입하며 ‘스마트 물류’를 실현하고 있다. 최근에는 자동차 반조립 부품(KD, Knock-Down)
softeer.ai
- 기다란 작업 라인에 로봇과 부품이 단위 간격으로 놓여 있다.
- 모든 로봇은 그의 위치 바로 옆에 인접한 거리가 K이하인 부품만 집을 수 있다.
- 로봇이 부품을 집을 때 왼쪽, 오른쪽은 상관없다.
- 부품을 집을 수 있는 로봇의 최대 수를 구하는 문제이다.
- 라인의 길이가 N일때 1 ≤ N ≤ 20,000인 정수이다.
- 부품을 집을 수 있는 거리가 K일때 1 ≤ K ≤ 10인 정수이다.
- P는 로봇이고 H는 부품이다.
알고리즘
- 라인의 길이와 부품을 집을 수 있는 거리를 입력받는다.
- 로봇(P)과 부품(H)의 위치를 문자로 입력받아 리스트 변수에 넣는다.
- 반복문을 통해 로봇의 위치를 찾고 로봇의 위치에서 바로 옆에 인접한 거리가 K이하인 부품을 찾는다.
- 부품은 왼쪽부터 집고 조건문을 통해 부품을 집을 때 라인의 길이를 넘지 않게 한다.
- 집은 부품은 다른 이름으로 바꾸어 구분한다.
- 매 부품을 집는 순간을 카운트 해주어 부품을 집을 수 있는 로봇의 최대 수를 출력한다.
코드
import sys
n, k = map(int, sys.stdin.readline().split())
# 로봇 = P, 부픔 = H
r = list(str(sys.stdin.readline()))
cnt = 0
# 반복문을 통해 로봇을 찾는다.
for i in range(n):
if r[i] == "P":
# 로봇의 위치에서 바로 옆에 인접한 거리가 K이하인 부품을 찾는다.
for j in range(i-k,i+k+1):
# 부품을 집는 거리는 라인의 길이를 넘지않게 한다.
if j < 0 or j > n:
continue
# 집은 부품은 다른 이름으로 바꿔 구분한다.
elif r[j] == "H":
# 부품을 집는 순간 카운트 해준다.
cnt += 1
r[j] = "A"
break
print(cnt)
결과
위 코드 밑에 print(r)을 작성하면 라인의 모습을 리스트로 확인할 수 있다.
위 출력 화면을 보게 되면 로봇이 집은 부품은 A라는 문자로 바꿔 다르게 구분하는 것을 확인할 수 있다.
따라서 코드를 분석하게 되면 반복문을 통해 로봇을 찾고 로봇의 K만큼의 거리에 있는 부품을 왼쪽부터 집는 것이다. 집은 부품은 다른 이름으로 바꿔 구분하고 이때 카운트를 해주어 부품을 집을 수 있는 로봇의 최대 수를 출력하면 된다.
github
junjange/CodingTest
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Softeer' 카테고리의 다른 글
[softeer] 소프티어(파이썬): 강의실 배정 ★★★ (0) | 2021.05.16 |
---|---|
[softeer] 소프티어(파이썬): 우물 안 개구리 ★★★ (0) | 2021.05.16 |
[softeer] 소프티어(파이썬): 성적 평균 ★★★ (0) | 2021.05.16 |
[softeer] 소프티어(파이썬): 금고털이 ★★ (1) | 2021.05.15 |
[softeer] 소프티어(파이썬): 징검다리 ★★★ (0) | 2021.05.14 |