[23/11/05]코테 : 피자나눠먹기 / 배열 뒤집기 /

이카루스·2023년 11월 6일
0

코드공부

목록 보기
2/8
post-thumbnail

1. 피자나눠먹기

피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요.

내 풀이

def solution(n):
    answer = n//7 if n%7 == 0 else n//7+1
    return answer

생각도 못한 풀이

def solution(n):
    return (n - 1) // 7 + 1 

이 함수의 목적은 주어진 숫자 n이 속하는 "7의 배수 구간"을 찾는 것으로 보입니다. 예를 들어, 1부터 7까지의 숫자는 모두 1번째 구간, 8부터 14까지의 숫자는 2번째 구간에 속하며, 이런 식으로 계속됩니다.
따라서, 이 함수는 주어진 숫자 n이 몇 번째 7의 배수 구간에 속하는지를 계산하여 반환합니다. 예를 들어, n = 8일 경우, 결과는 2가 됩니다(8은 2번째 7의 배수 구간에 속함).

2. 배열 뒤집기

거꾸로 루프 돌리기

1. reversed() 함수 사용하기:

reversed() 함수는 리스트, 튜플, 문자열 등의 순회 가능한(iterable) 객체에 사용될 수 있습니다.
이 함수는 객체의 원소들을 역순으로 순회하는 반복자(iterator)를 반환합니다.
예시:

letters = ['A', 'B', 'C', 'D', 'E']
for letter in reversed(letters):
    print(letter)

결과는 'E', 'D', 'C', 'B', 'A' 순으로 출력됩니다.
리스트 슬라이싱 사용하기:

2. 리스트의 슬라이싱 연산자 [::-1]

이 방법은 원본 리스트의 복사본을 생성하므로 메모리 사용량이 증가합니다.
예시:

for letter in letters[::-1]:
    print(letter)

이 경우에도 결과는 'E', 'D', 'C', 'B', 'A' 순으로 출력됩니다.

3. 리스트의 reverse() 함수 사용하기

reverse() 함수는 리스트 객체 자체를 역방향으로 재배치합니다. 이는 원본 리스트를 변경합니다.
이 함수는 새로운 리스트를 생성하지 않으므로 메모리 효율적입니다.
예시:

letters.reverse()
print(letters)

여기서 letters는 ['E', 'D', 'C', 'B', 'A']로 변경됩니다.

이 세 가지 방법 중에서 reversed() 함수를 사용하는 것이 코드의 가독성과 성능 면에서 권장됩니다. 이는 원본 데이터를 변경하지 않고, 메모리를 추가로 많이 사용하지 않으면서도 역방향 순회를 가능하게 합니다. 반면, 리스트 슬라이싱은 새로운 리스트 복사본을 생성하고, reverse() 함수는 원본 리스트를 변경한다는 점에서 차이가 있습니다.

profile
Der Schmerz, der mich nicht töten kann, macht mich nur stärker (나를 죽이지 못하는 고통은 나를 더 강하게 만든다)

0개의 댓글