Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- Docker
- 데이콘
- 자연어처리
- Real or Not? NLP with Disaster Tweets
- ubuntu
- 편스토랑
- PYTHON
- dacon
- 금융문자분석경진대회
- 캐치카페
- SW Expert Academy
- github
- Kaggle
- 프로그래머스 파이썬
- 프로그래머스
- Git
- 편스토랑 우승상품
- 맥북
- programmers
- 더현대서울 맛집
- 백준
- gs25
- AI 경진대회
- hackerrank
- leetcode
- 코로나19
- 우분투
- Baekjoon
- ChatGPT
- 파이썬
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 진료순서 정하기 (Python) (feat.ChatGPT) 본문
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 진료순서 정하기 입니다.
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
👨🏻💻 문제 풀이 - SOMJANG
1. 먼저 응급도가 담겨져있는 리스트를 내림차순으로 정렬합니다.
2. 이렇게 만든 리스트로 숫자를 key 로 순번을 value 로 하는 dictionary 를 만들어줍니다.
3. 마지막으로 응급도 리스트에서 하나씩 숫자를 꺼내오면서 emergency_dict 에 응급도를 넣어 나오는 idx 를 모아 정답으로 합니다.
👨🏻💻 코드 (Solution)- SOMJANG
def solution(emergency):
sorted_emergency = sorted(emergency, reverse=True)
emergency_dict = {
num:idx for idx, num in enumerate(sorted_emergency, start=1)
}
return [emergency_dict[num] for num in emergency]
👨🏻💻 문제 풀이 - ChatGPT - 1회차
- sorted() 함수를 사용하여 입력받은 emergency 리스트를 내림차순으로 정렬합니다.
- 리스트 컴프리헨션을 사용하여, 각 원소의 응급도가 높은 순서대로 번호를 부여합니다. 이를 위해 index() 함수를 사용하여 각 원소가 정렬된 리스트에서 몇 번째 위치에 있는지를 찾고, 1을 더하여 인덱스를 번호로 변환합니다.
- 부여한 번호를 담은 리스트를 반환합니다.
👨🏻💻 코드 (Solution)- ChatGPT - 1회차
def solution(emergency):
sorted_emergency = sorted(emergency, reverse=True) # 응급도가 높은 순서대로 정렬
answer = [sorted_emergency.index(x)+1 for x in emergency] # 응급도가 높은 순서대로 번호 부여
return answer
제가 사용할까 고민했던 index를 활용해서 풀었습니다.
👨🏻💻 문제 풀이 - ChatGPT - 2회차 - 더 성능 좋은 코드 실패!
- enumerate() 함수를 사용하여 각 원소와 인덱스를 쌍으로 묶은 이터레이터를 생성합니다.
- sorted() 함수를 사용하여 이터레이터를 내림차순으로 정렬합니다. 이때 key 옵션을 사용하여 정렬 기준을 설정합니다. 람다식을 사용하여 각 쌍 중에서 두 번째 원소에 대해 내림차순으로 정렬합니다.
- 리스트 컴프리헨션을 사용하여 정렬된 이터레이터에서 인덱스만 추출하여 1을 더한 리스트를 생성합니다.
👨🏻💻 코드 (Solution)- ChatGPT - 2회차 - 더 성능 좋은 코드 실패!
def solution(emergency):
return [i+1 for i, x in sorted(enumerate(emergency), key=lambda x: -x[1])]
더 성능 좋은 코드는...!


몇몇 케이스에서 실패하여
이 실패한 입력값과 기댓값을 알려주고 다시 풀어봐 달라고 했으나...!
계속 같은 코드를 알려주어 너무 아쉬웠습니다.
읽어주셔서 감사합니다.
GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07
1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.
github.com
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[Programmers] 개미 군단 (Python) (feat.ChatGPT) (1) | 2023.04.12 |
---|---|
[Programmers] 외계행성의 나이 (Python) (feat.ChatGPT) (0) | 2023.04.11 |
[Programmers] 팩토리얼 (Python) (feat.ChatGPT) (0) | 2023.04.09 |
[Programmers] 약수 구하기 (Python) (feat.ChatGPT) (0) | 2023.04.08 |
[Programmers] 369게임 (Python) (feat.ChatGPT) (0) | 2023.04.07 |