코테공부

·코테공부
import string tmp = string.digits+string.ascii_lowercase def convert(num, base) : q, r = divmod(num, base) if q == 0 : return tmp[r] else : return convert(q, base) + tmp[r] def solution(n): num = convert(n, 3) reversed_num = num[::-1] result = int(reversed_num, 3) return result  3 -> 10진법은 모듈이 있어서 변환이 쉽지만 10 -> 3진법은 모듈이 없다. 그래서 해당 수를 n 진법으로 나눈 값을 이용해서 변환 시켜야한다. 그 함수가 convert 함수이다. 재귀 함수를 사용해서 계..
·코테공부
from collections import deque def solution(scoville, K): answer = 0 scoville.sort() scoville = deque(scoville) while scoville[0] < K: num = scoville.popleft() + (scoville.popleft()) * 2 scoville.insert(0, num) answer += 1 if scoville[0] < K and len(scoville) == 1: return -1 return answer 처음에 위처럼 적었다. 근데 deque 특성상 sort를 하려면 리스트로 변환 후 다시큐로 만들어야한다. 그래서 이 코드는 잘못됐다. def solution(scoville, K): answer ..
·코테공부
풀이는 위와 같다. 임시 좌표를 지정하고 그걸 제어문 돌릴때마다 갱신해주면 된다. 그 이후에는 노가다이다. 제일 중요한 건 pad 좌표를 설정할 수 있느냐 없느냐이다.
·코테공부
처음에는 리스트로 index 모듈을 썼는데, 시간초과가 나는거보니 리스트와 인덱스 모듈을 쓰지 말라는 것 같았다 이 문제는 해쉬 유형인 것이다. 딕셔너리를 만들고 딕셔너리에서 callings 요소를 뽑아서 인덱스 위치를 바꿔준다. players에 인덱스 위치에서 뽑아오면 된다. 그 위치 뽑은걸 players 리스트를 위치를 바꿔준다.
·코테공부
시저암호 해설 해당 문자열은 문자인지, 문자라면 소문자인지, 대문자인지, 문자가 아니면 뭔지 4가지를 구별해야한다. 문자가 아닐때는 공백밖에 없고 공백을 그냥 넣으면 되므로 문자인지 아닌지만 판단해서 문자열의 끝에 넣는다. base를 대문자 소문자로 판단해서 문자 아스키코드를 숫자로 바꾸고 문자 사이의 거리를 계산하고 i( 즉, 각각 'a' 또는 'A'에서 base얼마나 많은 위치가 떨어져 있는지), 이 거리에 알파벳의 위치만큼 문자를 이동한 다음 결과를 모듈로 26를 기준으로 계산한다. 이동된 위치가 알파벳의 끝을 넘어가는 경우 주위를 둘러싸도록 한다. 이 계산의 결과는 알파벳에서 이동된 문자의 새 위치를 나타내는 0에서 25 사이의 숫자입니다. a~z까지가 0~25까지이기 때문이다. 그래서 26으로 ..
·코테공부
해설 name, yearning list의 인덱스는 같이 가므로 name에 요소가 있다면 그 인덱스를 찾아서 yearning에서 값을 찾아서 더해주면 됨
·코테공부
1. 체육복 그리디 문제는 '정렬'을 해야한다. 1단계라서 2포인트를 사용할 필요는 없고 리스트 형식 말고도 set 자료구조로도 정렬을 할 수 있다는 것을 알았다. 2. 마법의 엘리베이터 숫자의 1의 자리를 반올림할거냐 그냥 쓸거냐 판단하는 문제이다. 5일때는 반올림할 수도 안할수도 있으니 백의자리수가 어떤 수인지를 판단해서 결정한다. 3. 조건에 맞는 사용자와 총 거래금액 조회하기 해당 문제는 같은 키 이름이 없는데 어떻게 연결하냐가 중요하다. 사용자가 중요하므로 작성자아이디와 유저 아이디가 같다고 생각하고 조인을 한다. 그리고 중고거래 완료는 그룹 이전의 내용이므로 having 말고 where 절에서 처리한다. 그리고 그룹 이후의 조건은 having으로 처리한다.
·코테공부
1. 티셔츠 프로그래머스에서 정렬 문제 중 하나이다. 보통 프로그래머스에서 2포인트 문제를 많이 출제한다. 그때마다 정렬 후 -> 투포인트 초기화 -> 제어문 순으로 푸는 공식이 있다고 한다. 위 문제도 같은 유형이다. 2. 상담예약제 위 문제도 같은 유형이다. 정렬 - 투포인트 초기화 - 제어문 위 같은 유형을 merge sort 라고 한다. 3. SQL 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기 ~일 때는 00으로 표현하고 ~일 때는 ㅁㅁ으로 표현하라 -> case then else end 절 사용 in으로 그 안에서 처리하도록 하는데, where에서만 쓰는 줄 알았더니 그냥 다 쓸 수 있는것을 깨달았다.
알면 알 수록 재밌다!
'코테공부' 카테고리의 글 목록