Python(58)
-
[Python - 프로그래머스 Level1] 다트 게임
코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) ..
2021.01.04 -
[Python - 프로그래머스 Level2] 배상 비용 최소화
문제를 잘못이해하여 처음에는 순열과 조합을 이용해 계산하였다 하지만 너무 복잡한 식이 되어 이게 맞나? 헷갈려 다른분들의 블로그를 참고하여 다시 문제를 이해하고 코드를 짤 수 있었다. 매우 간단하게 for문을 이용하여 매번 for문 안에서 works 리스트를 정렬하며 맨 마지막 (즉 최대값을 갖는 item)을 1씩 빼주는 방식으로 구현할 수 있었다. for문과 sort 활용 풀이 과정 def solution(no, works): for _ in range(no): works.sort() if works[-1] == 0: break works[-1] -= 1 return sum([i*i for i in works]) 정확도는 다 맞을 수 있었지만 효율성은 모두 시간 초과 나는 풀이법이였다. 그래서 다른 풀..
2021.01.03 -
[Python - 프로그래머스 Level2 ] 스킬 트리
코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 설명 선행 스킬이란 어떤 스킬을 배우기 전에 먼저 배워야 하는 스킬을 뜻합니다. 예를 들어 선행 스킬 순서가 스파크 → 라이트닝 볼트 → 썬더일때, 썬더를 배우려면 먼저 라이트닝 볼트를 배워야 하고, 라이트닝 볼트를 배우려면 먼저 스파크를 배워야 합니다. 위 순서에 없는 다른 스킬(힐링 등)은 순서에 상관없이 배울 수 있습니다. 따라서 스파크 → 힐링 → 라이트닝 볼트 → 썬더와 같은 스킬트리는 가능하지만, 썬더 → 스파크나 라이트닝 볼트 → 스파크 → 힐링 → 썬더와 같은 스킬트리는 불가능합니다. 선행 스킬 순서 skill과 유저들이 만든 스킬트리1를 담은 배열 skill_trees가 매개변수로 주어질 때, 가능한 스킬트리 개수를 ret..
2021.01.03 -
[Python - 프로그래머스 Level1] 크레인 인형뽑기 게임
코딩테스트 연습 - 크레인 인형뽑기 게임 [[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 문제 설명 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하..
2021.01.03 -
[Python -프로그래머스 Level2] 올바른 괄호
코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호 programmers.co.kr 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 ()() 또는 (())() 는 올바른 괄호입니다. )()( 또는 (()( 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수..
2020.12.31 -
파이썬을 파이썬 답게
오늘은 파이썬 공부할 때 많이 유용했던 프로그래머스의 '파이썬을 파이썬 답게' 강의에 대해 소개해드리고자 해요! 파이썬을 파이썬답게 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr 파이썬 왠만한 문법에 대해 다 잘 알고 있다고 생각했는데 '파이썬을 파이썬답게' 강의와 문제를 풀어보면서 아직 많이 부족하고, 파이썬은 정말 무궁무진한 언어라는 것을 알았어요! 알고리즘 문제 풀 때 파이썬이 얼마나 좋은 언어인지도 다시한번 깨달았습니다 😀 그래서 ! '파이썬을 파이썬 답게' 강의에서 새롭게 배운 유용한 파이썬 문법/모듈에..
2020.12.30