python 19

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

[Python] 리스트 append 와 extend의 차이

다들 알다시피 append와 extend는 리스트에 요소를 추가하는 메서드다. 알고리즘 문제를 풀다가 extend를 썼어야 할 때에 append를 써서 틀려 이번 기회에 뭐가 다른지 차이점을 확실히 짚고 넘어가고 싶어 포스팅한다. ✏️append(x)append 메서드는 리스트 끝에 요소를 그대로 추가한다. 추가되는 요소는 리스트의 마지막에 추가된다. lst = [1, 2, 3]lst.append(4)print(lst) # 출력: [1, 2, 3, 4] ✏️extend(iterable)반면 extend 메서드는 리스트 끝에 다른 리스트의 모든 요소를 추가한다. 추가되는 요소들은 리스트의 마지막에 순서대로 추가된다. 여기서 iterable은 리스트, 튜플, 문자열 등과 같은 반복 가능한 객체이다.lst1..

[Python] 알고리즘 문제 풀다 발견한 대소문자 바꾸기 메서드.. 우리의 시간을 아끼자 ^ㅡ^

프로그래머스 코딩 기초 트레이닝 문제를 풀던 중 발견한 좋은 메서드가 있어서 공유 & 기억 차 쓰는 글이다. 문제인 즉 이 문제였다 '대소문자 바꾸기'https://school.programmers.co.kr/learn/courses/30/lessons/181949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr aBcDeFg 를 AbCdEfG 로 바꿔서 출력하면 되는 문제.주어진 건 str = input() 뿐이었고 어떻게 할까 하다가 대문자 소문자, 소문자 대문자로 바꿔주는 함수를 만든 후 입력값에 적용시켜 print 하도록 하는 코드를 만들고 실행시키니 ..

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

[Python] 리스트와 딕셔너리의 차이

오늘은 알고리즘 문제를 풀어오며 머리속에 둥둥 떠다니던 리스트와 딕셔너리의 개념을 확실히 정립하고 넘어가고자 포스팅을 작성해보려고 한다. 리스트와 딕셔너리 각각의 개념을 예시와 함께 정리하고, 이 둘의 차이와 활용 방법, 더 나아가 리스트와 딕셔너리를 어떻게 조합해서 쓸 수 있을까 까지 정리해보겠다 😋 ✏️ 리스트란?여러 가지 값을 순서대로 저장할 수 있는 데이터 구조이다. a = [1, 5, 2]b = [3, "a", 6, 1]c = []d = list()같은 자료형도 들어갈 수 있고, 다른 자료형도 들어갈 수 있다. 또한 리스트의 길이는 len() 함수를 사용해서 잴 수 있다.a = [1, 5, 2]print(len(a)) # 출력값: 3b = [1, 3, [2, 0], 1]print(len(b..

[Python] 변수의 mutable과 immutable의 차이

요새 아침마다 알고리즘 스터디를 하면서, 그날 그날 레벨이 높은 문제가 당첨될수록 내 힘으로 풀지못하고 구글링의 힘을 빌리는 날이 많아지고 있다. 그래서 얼렁뚱땅 푸는 게 아닌 정말 기초부터 탄탄히 하고 싶어서 프로그래머스의 코딩 기초 트레이닝 124 문제를 하루에 되는 대로 많이 풀고 있다. 오늘은 문득 문제를 풀면서 이 값은 저장을 해줘야돼 말아야돼? 고민하다가 이 참에 정리를 하고 확실히 한 후 넘어가려고 포스팅 해보려한다. 일단 다들 알고 있겠지만. 변수란? 변수(Variable)는 프로그램의 처리 과정에서 데이터를 담아둘 수 있는 메모리의 공간을 의미한다. 하나의 변수에는 하나의 값만 저장할 수 있고, 이 값은 변할 수 있기 때문에 뜻 그대로 '변수' 라고 하는 것이다. * 변수 이름 짓는 팁 ..

[leetcode 198. python] 집 도둑 (House Robber) 풀이

https://leetcode.com/problems/house-robber/description/ LeetCode - The World's Leading Online Programming Learning Platform Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 당신은 프로페셔널한 도둑이다. 길을 따라 있는 집의 돈을 훔치려한다. 딱 한 가지 제약은, 하루동안 바로 옆에 인접(adjacent)해 있는 집의 돈을 훔칠 시, 경찰과 연결된 보안경보가 자동으로 울린다는 사..

Algorithm/LeetCode 2024.01.23