본문 바로가기

전체 글628

[프로그래머스] 타겟넘버 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 다른사람 풀이 - DFS def solution(numbers, target): answer = 0 queue = [[numbers[0],0], [-1*numbers[0],0]] n = len(numbers) while queue: temp, idx = queue.pop() print(temp) idx += 1 if idx < n: queue.append([temp+numbers[idx], idx]) queue.append([temp-nu.. 2022. 5. 6.
파이썬 리스트 컴프리헨션 num_list = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] new_list = [] # 평소에는 아래와 같이 작성 for num in num_list: if num > 3: new_list.append(num) # 여기서 List Comprehension을 사용하면 더 짧고 간결하게 코드를 작성할 수 있습니다. new_list = [ num for num in num_list if num > 3 ] # 이외에도 filter를 활용하는 방법도 있습니다. new_list = list(filter(lambda x: x > 3, num_list)) 2022. 5. 4.
[프로그래머스] 124 나라의 숫자 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 다른사람 풀이 (성공) def solution(n): answer = '' n_array = ["1", "2", "4"] while n > 0: n -= 1 answer = n_array[n % 3] + answer n //= 3 return answer 하나의 배열을 만들어 줍니다.n_array=["1","2","4"] 를 만들어서 계속 뺑뺑이 돌려줍니다. 숫자 n에서 n%3을 했을 때, 0,1,2가 나오게 됩니다. 0이 나오면 11이 나오면 23이 나오면 4 이렇게 출력이 되도록 합니다.n-1을 하고, n%3을 해서 배열결과물을 출력합니다. n=1이면, n-1(1-1=0)을 해서 n%3(0%3=0)을 해서 1 출력n=2이면, n-.. 2022. 5. 4.
[2022 읽은 책] 주식, 나는 대가처럼 투자한다 - 강영연, 최재원 -주식 대가들의 투자원칙 및 투자방법에 대해서 설명되어있다. 결국 자신만의 원칙을 잘 지키는것이 투자의 성공이라 보면 된다.(⭐️⭐️⭐️) 2022. 5. 4.
Python 데코레이터 정의 : 데코레이터는 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용합니다 def hello(): print('hello 함수 시작') print('hello') print('hello 함수 끝') def world(): print('world 함수 시작') print('world') print('world 함수 끝') hello() world() hello 함수 시작 hello hello 함수 끝 world 함수 시작 world world 함수 끝 만약 다른 함수도 시작과 끝을 출력하고 싶다면 함수를 만들 때마다 print를 넣어야 합니다. 따라서 함수가 많아지면 매우 번거로워집니다. 이런 경우에는 데코레이터를 활용하면 편리합니다. 다음은 함수의 시작과 끝을 출력하는 데코레이터입니다. def.. 2022. 5. 2.
[프로그래머스] 오픈채팅방 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 내풀이 (1차 실패) def solution(record): id_dic = {} answer = [] for change in record: id_dic[change.split()[1]] = change.split()[-1] for message in record: if "Enter" in message: answer.append(id_dic[message.split()[1]] + "님이 들어왔습니다.") elif "Leave" in message: answe.. 2022. 5. 2.