2022년 7월 28일에 작성됨
https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 분석
명함을 가로로 수납하든 세로로 수납하든 지갑에 넣기만 하면 된다.
- 각 가로, 세로 중 큰 값을 가로, 작은 값을 세로로 둔다.
- 가로 값, 세로 값 중에서 가장 큰 값을 골라 그 둘을 곱해주면 최소 지갑의 크기가 된다.
ex) sizes의 원소가 [1, 2], [3, 4], [6, 5] 이렇게 있다고 가정하면,
가로: 2, 4, 6
세로: 1, 3, 5
최소 지갑의 크기: 가로 최댓값 * 세로 최댓값 = 6 * 5 = 30 이 된다.
소스 코드 (⭕)
def solution(sizes):
w_max = 0
h_max = 0
for a, b in sizes: # <for 반복문 구조> for 변수 in 리스트:
if a < b: # 세로(b)가 가로(a)보다 클 경우
a, b = b, a # 가로와 세로 값을 바꾸어 큰 값을 가로에 넣어줌
if w_max < a: # 가로 값들 중에 가장 큰 값 구하기
w_max = a
if h_max < b: # 세로 값들 중에 가장 큰 값 구하기
h_max = b
return h_max * w_max # 가로와 세로의 최대 길이를 곱한 값 반환
코드 분석
1. sizes 리스트에 존재하는 요소를 하나씩 확인하며, 가로의 길이(a)가 세로의 길이(b) 보다 더 크도록 만들어 준다.
2. 만약 가로의 길이가 w_max보다 크다면 w_max을 a로 설정한다.
3. 만약 세로의 길이가 h_max보다 크다면 h_max을 b로 설정한다.
4. 가로의 최대 길이(w_max)와 세로의 최대 길이(h_max)를 곱한 값을 반환한다.
end
파이썬에 아직 적응이 안돼서 너무 어려웠다..
if문은 c언어랑 구조가 비슷해서 괜찮았는데 for문은 시퀀스 객체, 튜플, 리스트 이런 용어들이 막 나와서 헷갈리고 뭐가 뭔지 정확히 모르겠다. 하다 보면 알게 되겠지ㅜ?
'코딩테스트 & 문제 풀이' 카테고리의 다른 글
[Python]프로그래머스_Lv1 : 나머지가 1이 되는 수 찾기 (0) | 2023.05.16 |
---|---|
[C]프로그래머스_Lv1 : 소수 만들기 (0) | 2023.05.15 |
[Python]프로그래머스_Lv1 : 짝수와 홀수 (0) | 2023.05.14 |
[C]프로그래머스_Lv1 : 2016년 (0) | 2023.05.14 |
[C]프로그래머스_Lv1 : 핸드폰 번호 가리기 (2) | 2023.05.14 |