본문 바로가기

Python

(23)
[LV1] 프로그래머스 2016년 python https://programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까�� programmers.co.kr sum([0:0])은 0이다 -_-;; 인덱싱과 슬라이싱을 잘 쓰면 되는 문제다. def solution(a, b): month_days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] day_order = ["FRI", "SAT", "SUN", "MON", "TUE", "WE..
[LV1] 체육복 Python https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번� programmers.co.kr 해당 문제는, 도난당했으면서 여벌이 있는 경우의 친구가 함정이다. 따라서 reserve - lost와 lost - reserve를 각각 구해준다. 또 반복문을 어떻게 돌릴까도 문제인데... 바깥쪽 순회 리스트에서 데이터를 삭제하면 안된다. 따라서 reserve를 순회하며 lost에서 체육복을 받는 경우를 제거하자. def solution(n, lost, rese..
[LV1] K번째 수 Python https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 내가 제일 좋아하는 문제다. 파이썬 리스트 인덱싱 및 슬라이싱의 정수를 보여준다. 추가로 함수형 프로그래밍도~! 한 5번 정도 반복해서 풀어보길 추천한다. 참고로 맵 함수 안에 맵 함수를 넣을 때에는 (이 경우는 아님) 맨 안에 있는 맵 오브젝트를 자료형으로 변경해줘야 한다. 이는 마지막 호출 시에도 마찬가지이다. 아래 코드를 안에서부터 설명하면 커맨드의 모든 원소 x(리스트)에 대해 array에 0,1 : 슬라이싱을 적용하고,..
[LV1] 모의고사 python https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 �� programmers.co.kr 단순 반복문 문제다. 파이썬 활용 시, enum의 응용력을 배양할 수 있는 문제다 def solution(answers): # 1번의 패턴 p_1 = [1, 2, 3, 4, 5] # 2번의 패턴 p_2 = [2, 1, 2, 3, 2, 4, 2, 5] # 3번의 패턴 p_3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] # 각각의 수포자들을 it..
[LV1] 크레인 인형뽑기 Python https://programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): # 인형을 담을 스택 stack = [] answer = 0 # 1. move 안의 좌표를 check한다. for m in moves: pick = 0 # 2. board를 위에서부터 한 "행씩" 하나씩 체크한다. for r in board: # 3. move 안의 좌표는 열을 나타낸다. 0이 아니면 인형이 있는 것이므로 선택한다. if ..
프로그래머스 DFS/BFS 단어 변환 Python 풀이 https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 | 프로그래머스 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> programmers.co.kr 역시 이번에도 잘 푼 사람의 풀이를... 조금 더 python스럽게 최적..
프로그래머스 DFS/BFS 네트워크 Python 풀이 https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 | 프로그래머스 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다. 따라서 컴퓨터 A, B, C는 모두 같은 네트워크 상에 있다고 할 수 있습니다. 컴퓨터의 개수 n, 연결에 대한 정보가 담긴 2차원 배열 computers가 매개변수로 주어질 때, 네트워크 programmers.co.kr def solution(n:int, computers:list)-> int..
프로그래머스 DFS/BFS 타겟 넘버 python 풀이 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 | 프로그래머스 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘 programmers.co.kr 이 문제는... 다른 사람의 풀이 중에... 재귀적으로 멋지게 푼 풀이가..