2024. 5. 14. 12:07ㆍ코드리뷰
공부하는허딩크 : https://www.youtube.com/live/d04PXaSTIlQ?feature=shared
처음 문제를 해석하는데 시간이 걸렸다.
주어지는 food는 음식의 개수이다. ==> 이걸 해석하는데도 시간이 걸렸다.
food의 0번째 index의 숫자는 물을 의미한다.
즉, 1번째 index는 첫번째 음식의 개수, 2번째 index는 두번째 음식의 개수.... 이렇게 흘러간다.
<첫번째 시도 : 통과>
1. food의 0번째 index는 물이니까 무시하고, 범위는 1부터 끝까지 정해준다.
2. food[i] // 2를 해서 몇개를 배치해야 하는지 확인한다.
3. 2번에서 확인한 개수만큼 음식을 배치한다.
4. 신규변수를 초기화 후 3번에서 배치한 순서의 역순을 저장한다.
5. answer마지막에 물(0)을 더해주고, 4번을 더해주면 끝.
<다른사람 풀이 참고>
1. 정말 깔끔한 코드이다
ㄴ enumerate로 index와 food의 숫자를 각 뽑아서 바로 player1의 음식 순서와 개수를 나열해준다.
ㄴ player2에 player1을 역으로 저장한다.
ㄴ player1과 2를 더해주는데 중간에 0만 더해주면 답이 나온다.
2. itertools의 chain으로 묶어서 사용할 수도 있다.
이건 굳이 chain으로 묶지 않아도 사용 할 수 있을 것 같은데....
3. itertools의 chain함수 참고 (from chatgpt)
itertools.chain 함수는 여러 개의 iterable(반복 가능한 객체)을 하나의 iterable로 연결하는 데 사용됩니다. 예를 들어, 리스트, 튜플, 문자열 등 여러 개의 iterable을 하나로 합쳐서 순차적으로 순회할 수 있습니다. 이를 통해 여러 개의 iterable을 하나의 시퀀스로 간편하게 처리할 수 있습니다.
1) 기본 사용법 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
import itertools
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]
# itertools.chain을 사용하여 여러 개의 리스트를 하나로 연결
combined = itertools.chain(list1, list2, list3)
# 연결된 결과를 리스트로 변환하여 출력
print(list(combined))
2) 듀플과 문자열 연결 : [10, 11, 12, 'a', 'b', 'c']
import itertools
tuple1 = (10, 11, 12)
str1 = "abc"
# itertools.chain을 사용하여 튜플과 문자열을 연결
combined = itertools.chain(tuple1, str1)
# 연결된 결과를 리스트로 변환하여 출력
print(list(combined))
3) 배열 연결 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
import itertools
lists = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
# itertools.chain을 사용하여 리스트 안의 리스트들을 하나로 연결
combined = itertools.chain(*lists)
# 연결된 결과를 리스트로 변환하여 출력
print(list(combined))
- itertools.chain은 여러 개의 iterable을 하나의 iterable로 연결하는 함수입니다.
- 여러 iterable을 순서대로 연결하여 하나의 시퀀스로 처리할 수 있습니다.
- itertools.chain을 사용하면 여러 개의 리스트, 튜플, 문자열 등을 쉽게 합칠 수 있습니다.
이와 같은 기능을 통해 복잡한 데이터 구조를 단순하게 처리할 수 있습니다.
'코드리뷰' 카테고리의 다른 글
[python_파이썬_pass]프로그래머스_LV1_명예의 전당(1)_풀이 (0) | 2024.05.16 |
---|---|
[python_파이썬_pass]프로그래머스_LV1_콜라 문제_풀이 (0) | 2024.05.14 |
★[python_파이썬_시간복잡도 고민 중요]백준_2485번_가로수_풀이 (0) | 2024.05.13 |
[python_파이썬_Fraction함수]백준_1735번_분수 합_풀이 (0) | 2024.05.13 |
[python_파이썬_pass]백준_13241번_최소공배수_풀이 (0) | 2024.05.13 |