코-딩/프로그래머스

코-딩/프로그래머스

프로그래머스::키패드 누르기(python)

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Lv.1 풀이 def solution(numbers, hand): answer = '' # L: 왼손, R: 오른손 L = '*' R = '#' # 키패드 keypad = {0:(3,1), 1:(0,0), 2:(0,1), 3:(0,2), 4:(1,0), 5:(1,1), 6:(1,2), 7:(2,0), 8:(2,1), 9:(2,2), '*':(3,0), '#':(3,2)} for..

코-딩/프로그래머스

프로그래머스::하노이의 탑

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12946 난이도 : Lv.2 풀이 def solution(n): return hanoi(1, 2, 3, [], n) def hanoi(src, tran, dst, trace, n): if n == 1: trace.append([src, dst]) return hanoi(src, dst, tran, answer, n - 1) trace.append([src, dst]) hanoi(tran, src, dst, answer, n - 1) return trace 재귀 문제에서 자주 나오는 문제이다. 간단하게 생각해서 1) n-1개의 원판을 비어있는 경유지에 옮긴다. (src -> tran) 2) 남..

코-딩/프로그래머스

프로그래머스::최댓값과 최솟값

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12939 난이도 : Lv.2 풀이 def solution(s): newList = [] s = s.split(" ") for i in s: newList.append(int(i)) answer = " ".join([str(min(newList)), str(max(newList))]) return answer 그래도 레벨2 문제인데 아무래도 좀 더러운 것 같아서 줄여보고자 노력을 했다.. 하여.. 아래처럼 간단히 줄일 수 있다. 다른 풀이 def solution(s): s = list(map(int, s.split())) return str(min(s)) + " " + str(max(s))

코-딩/프로그래머스

프로그래머스::이상한 문자 만들기

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12930 난이도 : Lv.1 풀이 def solution(s): # '단어'기준 splitedWords = s.split(" ") # 공백 기준 분리 for i in range(len(splitedWords)): word = list(splitedWords[i]) # 글자 하나하나 분리 for k in range(len(word)): if k % 2 == 0: # 짝수번째 알파벳은 대문자 word[k] = word[k].upper() elif k % 2 == 1: # 홀수번째 알파벳은 소문자 word[k] = word[k].lower() splitedWords[i] = "".join(word..

코-딩/프로그래머스

프로그래머스::모의고사

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python3 난이도 : Lv.1 풀이 def solution(answers): answer = [] a = [1, 2, 3, 4, 5] b = [2, 1, 2, 3, 2, 4, 2, 5] c = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] cnt = {1: 0, 2: 0, 3: 0} for i in range(len(answers)): if a[i%5] == answers[i]: cnt[1] += 1 if b[i%8] == answers[i]: cnt[2] += 1 if c[i%10] == answers[i]: cnt[3] += 1 win = max(cn..

코-딩/프로그래머스

프로그래머스::체육복

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42862# 난이도 : Lv.1 풀이 def solution(n, lost, reserve): newReserve = [r for r in reserve if r not in lost] newLost = [l for l in lost if l not in reserve] for nr in newReserve: if nr - 1 in newLost: newLost.remove(nr - 1) elif nr + 1 in newLost: newLost.remove(nr + 1) answer = n - len(newLost) return answer 이미 카테고리에서 Greedy 알고리즘이라고 나와있다..

힞뚜루마뚜루
'코-딩/프로그래머스' 카테고리의 글 목록