[프로그래머스][PYTHON] Lv. 0 피자 나눠 먹기 (2)

2024. 2. 23. 16:16· 코딩테스트/PYTHON
목차
  1. 문제 설명
  2. 내 풀이
  3. 다른 사람 풀이
  4. 느낀점
728x90

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/120815

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 풀이


      
def solution(n):
if n%6 == 0:
return n//6
else:
for i in range(6):
if (n * (i+1)) % 6 == 0:
return n * (i+1) // 6

 

자세한 설명을 주석과 함께 작성해보았다. 


      
def solution(n):
answer = 0
# 사람 * 먹은 조각 = 6 * 피자개수
# 즉, n * 먹은 조각(a) = 6 * answer
# answer = n * a / 6
# 먹은 조각 개수의 범위: 1~6
"""
이유:
사람 7명이면..
7명이 1조각씩 -> 총 7조각(6의 배수 X)
7명이 2조각씩 -> 총 14조각(6의 배수 X)
7명이 3조각씩 -> 총 21조각(6의 배수 X)
7명이 4조각씩 -> 총 28조각(6의 배수 X)
7명이 5조각씩 -> 총 35조각(6의 배수 X)
7명이 6조각씩 -> 총 42조각(6의 배수)
7명이 7조각씩 -> 총 49조각(6의 배수 X)
...
==> 6조각 이후로는 반복만이 진행됨
"""
def solution(n):
if n%6 == 0:
return n//6
else:
for i in range(6):
if (n * (i+1)) % 6 == 0:
return n * (i+1) // 6
"""
n의 값이 4일 때, i+1은 3, n * (i+1) // 6 은 2가 됨
"""

 

 

다른 사람 풀이


      
def solution(n):
answer = 1
while answer * 6 % n != 0:
answer += 1
return answer

 

while 문을 이용한 풀이가 눈에 띄었다. 

피자 개수를 answer로 두고, 6조각을 곱한 후, n으로 나눴을 때 0인지 아닌지를 판단한다. 

이때, 0이 아니면 while문을 실행하고, 0이 아니면 while문에서 벗어난다. 

 

answer이 0이면 처음부터 0이기 때문에 첫 answer 값은 1로 지정한다. 

 


      
import math
def solution(n):
return (n * 6) // math.gcd(n, 6) // 6

 

간결하게 math 라이브러리를 사용해 최소공배수를 이용해서  푼 사람의 코드이다.

gcd는 최대 공약수를 구하는 함수이다. 

 

느낀점

뒤로 갈수록 문제가 어려워지는 듯한 느낌이다. 분명 단순한 문제같은데 막상 풀이를 코드로 작성하려면 복잡해지게 푸는 듯하다. 문제를 단순하게 보고 단순한 로직으로 푸는 방법을 연구해봐야겠다. 

728x90
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > PYTHON' 카테고리의 다른 글

[프로그래머스][PYTHON] Lv. 0 영어가 싫어요  (0) 2024.02.29
[프로그래머스][PYTHON] Lv. 0 2차원으로 만들기  (0) 2024.02.29
[프로그래머스][PYTHON] Lv. 0 최빈값 구하기  (0) 2024.02.23
[프로그래머스][PYTHON] Lv. 0 중앙값 구하기  (0) 2024.02.22
[프로그래머스][PYTHON] Lv. 0 분수의 덧셈  (0) 2024.02.22
  1. 문제 설명
  2. 내 풀이
  3. 다른 사람 풀이
  4. 느낀점
'코딩테스트/PYTHON' 카테고리의 다른 글
  • [프로그래머스][PYTHON] Lv. 0 영어가 싫어요
  • [프로그래머스][PYTHON] Lv. 0 2차원으로 만들기
  • [프로그래머스][PYTHON] Lv. 0 최빈값 구하기
  • [프로그래머스][PYTHON] Lv. 0 중앙값 구하기
_알파카
_알파카
안녕하세요, 데이터 분석가를 꿈꾸는 개인기록 블로그입니다:)
250x250
_알파카
yeonnys' 개발일지
_알파카
전체
오늘
어제
  • 분류 전체보기 (248)
    • PYTHON (16)
    • MYSQL (6)
    • 코딩테스트 (126)
      • PYTHON (88)
      • SQL (34)
      • AL (4)
    • STUDY (45)
      • 데이터 분석 (1)
      • DevCourse (44)
      • BOOST CLASS (0)
    • 데이터 시각화 (7)
      • Redash (3)
      • Tableau (1)
      • Superset (2)
    • 데이터 웨어하우스 (5)
      • Snowflake (3)
      • Redshift (0)
    • STATISTICS (1)
    • GIT (5)
    • AWS (4)
    • AI (1)
    • EXCEL (1)
    • 프로젝트 (5)
    • 기타 (16)
    • 일기 (10)

블로그 메뉴

  • 홈
  • 방명록
  • 글쓰기
  • 설정

공지사항

인기 글

태그

  • 백준
  • redash
  • 딕셔너리
  • python
  • 파이썬
  • 코딩테스트
  • S3
  • AWS
  • 프로그래머스
  • mysql

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
_알파카
[프로그래머스][PYTHON] Lv. 0 피자 나눠 먹기 (2)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.