Algorithm 26

[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 lv.1 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]])..

[programmers lv2.python] 롤케이크 자르기 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제  1차 풀이 (완전 탐색) 👉 실패def solution(topping): answer = 0 for i in range(len(topping)): a = topping[i:] b = topping[:i] if len(set(a)) == len(set(b)): answer += 1 return answer 오.. ..

[programmers lv2.python] 이진 변환 반복하기 풀이 (리팩토링 다..수..)

https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 1차 풀이 (리팩토링 전) 👉 정답def solution(s): count_zero = 0 count_binary = 0 while s != '1': # 0의 갯수 카운트하고 s의 모든 0 제거 count_zero += s.count('0') s = s.replace('0', '') # s를 s의 길이(c)..

[TIL][Algorithm] 다익스트라 알고리즘과 그 구현

오늘의 스터디 주제는 알고리즘, 그 중에서도 다익스트라 알고리즘에 대해 자세히 소개하고 싶어 포스팅해본다. 처음 알고리즘을 배울 때 정렬이나 BFS, DFS같은 알고리즘들은 한 번 배우고 아, 이런 식으로 풀면 되겠구나! 가 대충 감이 왔는데, 다익스트라의 경우 감이 잘 안잡혀서 당황했던 기억이 있다. 나와 스터디원들의 감을 다시 잡아보기 위해 포스팅 야무지게 써보겠다 !!! 📌 최단 경로 (shortest path) 우선, 다익스트라 알고리즘과 함께 딸려오는 키워드가 '최단 경로'이다. 알고리즘 문제를 풀 때, 'A에서 B로 가는 최소 비용이 얼마인가?' 이런 유형을 왕왕 본 적이 있을 것이다. 보통은 이런 공간적인 문제를 그래프로 표현하고, 각 지점은 노드, 도로는 간선으로 표현이 된다. 일반적으로 ..

Algorithm 2024.03.29