문제
숫자로 이루어진 문자열 S가 주어졌을 때,
왼쪽부터 +, x 연산을 수행하여 만들 수 있는 가장 큰 수를 구하라 ( 연산우선순위 고려x ,연산은 왼쪽부터)
정답
strs = list(map(int,input()))
result = 1
for s in strs:
if s <=1:
result+=s
else:
result*=s
print(result)
풀이
처음 풀 때는
보통 0이 아니면 곱연산이 더 큰 값을 만들 수 있을 거라고 생각해서
입력받은 문자열을 int로 바꿔서 리스트에 넣은 후
원소를 차례대로 조회하면서 0이 아니라면 result에다가 곱하는 방식의 코드를 작성했다
근데 알고보니 1일때도 곱보단 합이 더 큰 수를 만들 수 있었다는 사실..
그래서 수정한 코드.
'코딩테스트 > 👩💻 이코테' 카테고리의 다른 글
| [이코테/구현] 럭키 스트레이트 (1) | 2023.09.05 |
|---|---|
| [이코테/greedy]문자열 뒤집기 (0) | 2023.09.04 |
| [이코테/greedy] 모험가 길드 (3) | 2023.09.04 |
| [dfs/bfs] 연구소 (0) | 2023.08.31 |
| [dfs/bfs]특정 거리의 도시 찾기 (0) | 2023.08.28 |