분류 전체보기(98)
-
[Python - 프로그래머스 Level1] 비밀지도
코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ) 또는벽(#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1..
2021.01.04 -
[Python - 프로그래머스 Level1] 다트 게임
코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 문제 설명 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제곱, 2제곱, 3제곱 (점수1 , 점수2 , 점수3 )으로 계산된다. 옵션으로 스타상(*) ..
2021.01.04 -
[Docker/MySQL] 트랜잭션(Transaction)
트랜 잭션이란(Transaction) ?! 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 / 한꺼번에 수행되어야할 일련의 작업 연산을 의미한다. 여러 줄의 SQL 쿼리를 실행할 때 장애가 발생했을 경우 , 쿼리 전체를 취소(rollback) 하거나 확정(commit)하는 연산(원자성에 해당)을 하며 보통 RDBMS에서는 기본적으로 지원하는 RDBMS의 간판 기능이라고 말할 수 잇다. 트랜잭션의 ACID 특성 원자성(Atomicity) 일관성(Consistency) 격리성(Isolation) 내구성(Durability) MySQL(InnoDB)의 트랜잭션 MySQL의 기본 스토리지 엔진은 ' InnoDB'이다. MySQL의 InnoDB 엔진은 기본 설정이 트랜잭션이 미지원 상태이..
2021.01.03 -
[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