Algorithm 21

[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이 모두 당첨 번호일때와 모두 틀릴 때, 몇개는 당첨 번호이고 몇 개는 틀린 경우일 때도 생각해줘야 한다고 생각해서도 있었다. 하지만 문제의 제목이 '최저 순위와 최고 ..

[boj 1092.python] '배' 풀이 (feat. 언어만 바꿔도 통과, Python3와 PyPy3의 차이)

https://www.acmicpc.net/problem/1092  1차 시도 👉 시간 초과 실패N = int(input()) # 크레인 갯수cranes = list(map(int, input().split())) # 각 크레인의 무게 제한M = int(input()) # 박스의 갯수boxes = list(map(int, input().split())) # 각 박스의 무게cranes.sort(reverse = True)boxes.sort(reverse = True)# 예외 처리if boxes[0] > cranes[0]: print(-1)# 시간이 얼마나 걸리는지 계산time = 0while boxes: time += 1 for crane in cranes: # 각 크레인이 ..

Algorithm/BaekJoon 2024.09.23

[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에 없..

[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):..

[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..

[programmers/python] 무작위로 k개의 수 뽑기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/181858 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제첫 번째 풀이 (❌)def solution(arr, k): answer = list(set(arr))[:k] length = len(answer) if length  로직은 잘 만들었는데, 문제 마지막의 예외처리를 잘못했음을 알 수 있었다. 리스트를 확장시켜야 하는데 리스트 요소 추가 메서드를 헷갈려서 리스트 안에 리스트를 또 만들어버렸다 ㅎ([0, 1, [-1, -1]])..