python 19

[programmers lv1.python] 달리기 경주 풀이 (시간초과 해결)

https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문제는 간단하다 ! 해설진이 이름을 부르는 선수는 달리기 경주 중 현재 자리에서 추월한 선수이므로, 선수들 리스트에서 한 칸 땡겨오면 되는 것! 1차 풀이 (시간 초과 실패)def solution(players, callings): for call in callings: # 호출된 이름(call)의 현재 인덱스 찾기 idx = players.index(call) # 첫 번째 원소가 아니라면 ..

[programmers lv.1 python] '로또의 최저 순위와 최고 순위' 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 흥미로운 문제였다. 처음엔 for문으로 lottos를 순회하면서 win_nums와 겹치는 숫자를 구분하려고 했는데, lottos의 원소 중 0이 나오면 처리를 어떻게 해야할지 막혀서 고민을 오래 했다.고민을 오래 한 이유 중에는 0이 모두 당첨 번호일때와 모두 틀릴 때, 몇개는 당첨 번호이고 몇 개는 틀린 경우일 때도 생각해줘야 한다고 생각해서도 있었다. 하지만 문제의 제목이 '최저 순위와 최고 ..

[programmers lv.1 python] 없는 숫자 더하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1차 풀이 (for문 사용) 👉 정답def solution(numbers): num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] answer = 0 for i in num_list: if i not in numbers: answer += i return answer 0~9로 이루어진 리스트 'num_list'를 순회하면서 numbers 배열에 없는 숫자를 찾고, if i not in numbers:를 사용하여 numbers에 없..

[Python] 파이썬에서의 집합, set 함수

프로그래머스에서 문제를 풀다가, 나의 경우 for문으로 풀었던 문제를 다른 사람은 set 함수로 간단히 푼 것을 보고 set 함수를 자세히 찾아보게 되었다. 포스팅 하면서 set 함수의 사용법과 쓰임에 대해 까먹지 않으려고 (!!!) 포스팅해본다. SET 함수란?자바의 set 함수와 같이, 파이썬의 set 함수 또한 집합을 생성하기 위해 사용된다. 집합은 '중복되지 않는 요소들의 모음'으로, 수학에서의 집합을 생각하면 되고! 파이썬의 set 함수는 집합 연산(합집합, 교집합, 차집합 등)을 지원한다는 것 까지 알아두자. 기본 사용법# 빈 집합 생성s = set()# 리스트나 문자열 등을 사용해 집합 생성s = set([1, 2, 3, 4, 4])print(s) # 출력: {1, 2, 3, 4} # 중..

[programmers lv1. python] 서울에서 김서방 찾기 (초..간단하게 풀기)

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 학습을 시작하는 매일 아침마다 정신도 차리고 알고리즘 감도 유지할 겸 프로그래머스의 lv 1 문제들을 풀고 있는데, 오늘 푼 문제가 어이없다시피 간단하게 풀 수 있는 방법이 있어 공유하고 싶어 포스팅을 한다. 먼저 알고리즘 문제를 푸는 필자의 루틴은 ㅡ 일단 푼다. (어렵거나 복잡하면 수도 코드를 사용하거나 그림을 그림)풀어서 맞추면 그 코드를 좀 더 간단하게 풀거나 클린 코드로 개선할 수 있는지 찾아본다.남은 어떻게 풀었나 '다른 사람의 코드' 섹션도 참고해본다. ('가끔 이렇게도 풀 수 있다고 ..?' 거나 ..

[programmers] 피자 나눠 먹기 (2) 파이썬 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/120815 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 문제 자체는 쉬운 문제였다. 최소 공배수를 구해야겠구나 라고 생각하고, for 문으로 피자 판 수를 1부터 시작해서 필요한 피자 판 수를 찾을 때까지 증가시키면서 모든 사람이 동일한 수의 조각을 가질 수 있는지 확인되면 그 때의 피자 판 수를 return 시키는 식으로 풀었다. 1.  for문 풀이 👉 정답def solution(n): for i in range(1, 6 * n + 1):..

[Python] 파이썬에서 최소 공배수 함수로 구하기

알고리즘 문제를 풀다 최소 공배수를 구해야 하는 문제를 맞닥뜨렸다.  필자는 for문으로 풀었지만, 풀고 난 후 다른 적합한 풀이 방법이 있나 찾아보다 파이썬에서 최소 공배수를 구하는 함수가 있다는 걸 알았다. 공유도 하고 잊지 않고 다음에 써먹기도 할 겸 포스팅한다 🍀 ✏️ 최소 공배수란?먼저 다들 알고 있겠지만 최소 공배수가 뭔지 간단히 짚고 넘어가보려 한다. 최소 공배수(LCM, Least Common Multiple)는 두 수의 배수 중에서 가장 작은 공통 배수를 의미한다. 예를 들어, 4와 6의 최소 공배수는 12 이다. 개념최소 공배수는 다음과 같은 특성을 가지고 있다.두 수의 공통된 배수 중 가장 작은 수최소 공배수를 구하기 위해 최대 공약수(GCD, Greatest Common Divis..

[programmers lv1.python] 기사단원의 무기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제1차 풀이(❌)def solution(number, limit, power): divisors = [] for i in range(1, number + 1): count = 0 for j in range(1, i + 1): if i % j == 0: count += 1 divisors.append(cou..