본문 바로가기

알고리즘/프로그래머스44

자동차 평균 대여 기간 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/157342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대여기간 1일부터 2일까지 빌리면 2일 동안 빌린 상태이기 때문에 끝-시작 +1 을 해줘야한다 평균이니까 avg 를 써서 평균기간을 구해 7보다 큰 값들만 가져온다 정렬은 오름차순 그대로 내림차순 desc SELECT CAR_ID,round(avg(END_DATE-START_DATE)+1,1) AVERAGE_DURATION from CAR_RENTAL_COMPANY_RENTAL_HISTORY g.. 2023. 6. 4.
조건에 맞는 사용자와 총 거래금액 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 서브쿼리를 사용해서 총금액이 90만 이상인 사람의 정보만 가져오고 그 정보로만 조인을 해서 원하는 조건의 값만 나오도록 조인을 한다 select a.USER_ID,a.NICKNAME,b.price as TOTAL_SALES from USED_GOODS_USER a ,(select WRITER_ID ,sum(price) as price from USED_GOODS_BOARD where STATUS.. 2023. 6. 3.
조건에 맞는 사용자 정보 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3건 이상이기 때문에 group by를 사용했을 때 2보다 크다고 조건을 넣어주고 그 조건에 해당하는 아이디만 가져온다 주소를 합치는 건 공백을 넣어주고 ||를 사용하여 문자열을 합친다 전화번호도 마찬가지인데 중간에 - 가 들어가야 하므로 슬라이싱을 해서 -를 넣어주고 다시 합친다 select USER_ID,NICKNAME , CITY ||' '|| STREET_ADDRESS1 ||' '|| S.. 2023. 6. 2.
조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164671 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 개의 테이블을 조인한 다음 서브 쿼리를 사용해 뷰가 가장 많은 게시물을 가져온다 내림차순이기 때문에 desc 를 써주면 끝 SELECT '/home/grep/src/'||a.BOARD_ID||'/'||a.FILE_ID||a.FILE_NAME||a.FILE_EXT FILE_PATH from USED_GOODS_FILE a ,USED_GOODS_BOARD b where a.BOARD_ID=b.B.. 2023. 6. 1.
할인 행사 https://school.programmers.co.kr/learn/courses/30/lessons/131127?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아이템과 갯수가 쌍으로 묶이니까 해쉬테이블인 딕셔너리 사용 10개씩 한 구간으로 잡아서 슬라이딩 윈도우를 사용한다 원소가 추가되면 키값에 해당하는 갯수를 하나 증가시키고 빠지는 값은 감소시킨다 매번 실행할때 두개의 딕셔너리가 같을때의 갯수를 세면 답 증가하는건 want -1 일때 1을 증가시키면 want 의 갯수가 되니까 want-1 이랑 같은때 두 원소가 같다고 .. 2023. 5. 31.
숫자 게임 python https://school.programmers.co.kr/learn/courses/30/lessons/12987 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr b 팀은 모든 걸 알고 있다 순서대로 b의 가장 낮은 점수가 a의 가장 낮은 점수와 싸우면 된다 a 가장 낮은 점수 보다 더 작다면 이건 점수를 얻을 수 없으니까 패배한다 그리고 그다음 순서가 a의 가장 작은 값과 비교하고 만약 b가 더 크다면 a도 다음 사람으로 넘어간다 이런 식으로 정렬해서 한 명씩 비교하면 간단하게 풀린다 def solution(a, b): a.sort() b.sort() n.. 2023. 5. 24.
가장 긴 팰린드롬 python https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 팰린드롬의 특성은 대칭이다 모든 시작점에서 팰린드롬이 가능한 건 모두 조사한다 현재 자리에서 양옆으로 퍼져나가면서 두 값이 같다면 이건 대칭이니까 팰린드롬이다 이런 식으로 한쪽이 문자열의 끝까지 가거나 다른 값이 나올 때까지 진행한다 멈추었을 때 반복한 회수가 팰린드롬길이 이다 팰린드롬 길이가 홀수일 때와 짝수일 때 방법이 약간 다른데 홀수일 때는 현재 자리 현재의 양옆 그 양옆 순서를 숫자로 표.. 2023. 5. 23.
기지국 설치 python https://school.programmers.co.kr/learn/courses/30/lessons/12979 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 기지국 영향을 안 받는 구간을 구한다 그리고 그 구간을 2*w+1로 나눈 몫과 나머지가 있다면 1을 더해준다 구간의 길이가 5 w가 1이라면 5의 길이에 최대로 배치했을 때 1개가 양옆으로 1씩이니 3을 커버할 수 있고 그러면 최소 2개는 필요하다 def solution(n, t, w): a=s=0 t.append(n+w+1) for i in t: b=i-w s+=((b-a-1)//(2*w+.. 2023. 5. 22.
스킬트리 - python https://school.programmers.co.kr/learn/courses/30/lessons/49993 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 스킬 트리의 순서대로 스킬을 찍어야 하니까 스킬 찍는 순서를 앞에서부터 하니씩 가져올 때 만약 이 스킬이 스킬 트리에 포함되어 있다면 가장 앞에 있는 스킬이어야 한다. 만약 ab 가 스킬 트리이고 bc 가 스킬을 찍는 순서라면 b는 a를 찍은 다음 배울 수 있으니까 불가능하고 ac는 가능하다 이런 식으로 가장 처음 원소가 일치하면 그다음원 소 일치하면 그다음원 소 그런 식으로 계속 일치해야 가능하.. 2023. 5. 20.
H-Index https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 이런 망할 설명의 문제따위는 누가만드는건지 문제의 답은 쉽다 내림차순 정렬해서 원소의 인덱스 번호가 원소의 값보다 작으면 그값이 h-index다 가장 마지막에 있는 값이 마지막에 업데이트 되니까 신경 안써도 된다 문제를 이해하는게 어려운 문제 def solution(c): c=sorted(c)[::-1] n=0 for i in range(len(c)): if c[i] >=i+1: n=i+1 .. 2023. 5. 18.
수식 최대화 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가지 연산자만 있으므로 6가지 경우의 수를 모두 계산하여 가장 큰 값 리턴 연산자 우선순위는 문자열 나누는 split 함수를 사용한다 가장 늦게 연산하는 연산자부터 나누어서 2번 나누고 eval 함수를 사용하면 가장 첫 번째 연산자 계산 그다음 리스트에 담아져있는 수들은 연산자가 없으므로 split 한 문자를 가져와 경우에 따라 *+- 중 하나로 연산해 준다 이런 방식으로 하면 eval ->ff-.. 2023. 5. 17.
조건에 부합하는 중고거래 상태 조회하기 https://school.programmers.co.kr/learn/courses/30/lessons/164672 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 날자를 문자로 바꿔서 특정 날자를 조회하고 한 열에 데이터를 바꿔야해서 case 문을 사용한다 데이터의 유니크한 개수가 적으면 case 보다 decode 가 편하다 select BOARD_ID,WRITER_ID,TITLE,PRICE, case STATUS when 'SALE' then '판매중' when 'RESERVED' then '예약중' when 'DONE' then '거래완료' end a.. 2023. 5. 13.
혼자서 하는 틱택토 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 어디선가 들어본 틱 택 토 게임 일단 조건이 1 x 가 o 보다 많으면 안 된다 2 o는 x+1 개보다 많으면 안 된다 3 x는 무조건 한 줄만 생겨야 한다 4 o는 1줄과 2줄 가능하지만 2줄일 때는 o는 5 개 x는 4개여야 한다 이 조건들을 조합해서 가능한 경우를 만들어준다 가능하면 1 불가능하면 0 def solution(t): def f(x): y=0 s1=0 s2=0 for i in .. 2023. 5. 12.
베스트앨범 - python https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 3가지 조건 조건 1 가장 많이 팔린 음원 장르로 정렬 딕셔너리로 장르별로 합을 구한다 조건 2 그중에서 각각 많이 팔린 음원 2개씩 가져온다 정렬된 딕셔너리 키값으로 순서대로 조회하는데 장르별로 정렬한다 조건 3 그중에서 만약 같은 순위라면 인덱스가 먼저 오는 게 먼저다 장르별로 정렬하고 같은 거는 인덱스로 다시 정렬 마지막으로 2개 슬라이싱 def solution(genres, plays): .. 2023. 4. 18.
요격 시스템 - python https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 북한이 어제 오후 대륙간 탄도 미사일을 발사 했습니다.... 요격준비 처음에 어떤 방법을 써야 할지 몰랐지만 생각해 보면 미사일은 무조건 요격해야 한다 일단 정렬을 한다. 1~10 미사일과 5~25 미사일이 있는 경우는 10에서 요격할 수 있다 앞 미사일의 구간 끝이 뒤에 오는 미사일의 앞보다 크다면 그건 한 번에 요격 가능하다 1~10 거리의 미사일과 다음번 4~8 거리의 미사일이 있다면 10.. 2023. 4. 17.
두 원 사이의 정수 쌍 - python https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 무슨 간단한 수식이 있는 줄 알았지만 n이 100만까지 그렇다면 n 번이다 그렇다 x 값에 대응하는 y를 찾아서 하나하나 값을 대입해 높이를 구하고 정수 싸이의 개수를 구한다 언제 한번 본 거 같은데 이게 최선이냐 def solution(r1,r2): s=s1=0 rr=r2**2 rr1=r1**2 for i in list(map(lambda x:x**2,range(-r2,r2+1))): s+=(.. 2023. 4. 16.
구명보트 python https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2명만 보트에 담을 수 있다는 점 보트의 수가 최소가 되려면 가장 무거운 사람과 가장 가벼운 사람을 짝지어야 한다 가장 무거운 사람과 가장 가벼운 사람이 주어진 무게보다 작으면 같은 배에 태우고 그렇지 않다면 한 명만 태운다 정렬해서 양 끝에서 시작하면 최대 최솟값이니까 여기서 한쪽은 무조건 한 칸씩 움직이고 반대편은 2개의 합이 주어진 수보다 작거나 같을 때만 움직인다 두 인덱스가 같아지면 모든.. 2023. 4. 14.
연속 부분 수열 합의 개수 python https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 원으로 생겨서 원순열인 줄 알았지만 결국 그냥 더하다니 n^2 복잡도의 문제 굳이 따지자면 슬라이딩 윈도라고 할 수 있을 듯 일단 모든 경우의 수를 구하면 n**2 개다 그중에 중복되는 걸 제거해야 하니까 다른 방법을 사용하려 했지만 모든 경우의 수를 구하는 문제 제일 앞에서 시작해서 앞으로 1칸씩 늘려가면서 누적함을 구하고 더할 때마다 집합에 값을 넣어줌 -중복을 제거해야 해서 집합 사용 이런.. 2023. 4. 13.
리코쳇 로봇 https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 생각보다 어렵다 일단 이것도 2차원 형태로 길을 찾는 문제다 그러면 bfs 사용 아마도 dfs 보다 bfs 가 빠를 듯 n 번째에 출구를 찾으면 바로 끝나기 때문에? 어쨌든 bfs를 사용하는데 약간 방식이 애매하다 한 칸이 아니라 끝까지 미끄러지기 때문에 처음 시작점에서 시작해서 사방으로 가는데 1칸이 아니라 벽을 만나거나 모서리까지 갈 때까지 while 문으로 반복한다 만약 while 문을 탈.. 2023. 4. 12.
연속된 부분 수열의 합 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 약간 어려운듯했지만 처음과 끝만 k 값에 따라 움직이면 간단하다 구간의 시작을 a 끝을 b라고 할 때 a~b 사이의 값의 합이 k 보다 크다면 이때는 k 보다 작게 만들어야 한다 수열에 음수는 없으니 a 와 b 을 조절하여 부분합을 작게 만들려면 시작점인 a를 한 단계 앞으로 움직여야 한다 그러면 구간이 줄어드니까 당연하게 합도 줄어든다 반대로 현재의 부분합이 k보다 작다면 이때는 부분합을 크게.. 2023. 4. 8.
N개의 최소공배수 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최소공배수 구하는 문제 원래 2개의 수에서 구하지만 이건 n 개의 수에서 구한다 모든 약수 중 최대 약수의 곱이 최소공배수이다 그러므로 모든 수의 약수를 구하고 그 약수 중 최대가 되는 개수를 찾아서 제곱해 준다. 그리고 그 제곱한 수를 모두 곱하면 끝 def solution(t): d1={} s=1 def f(n): i=2 d={} while n!=1: if n%i==0: d.setdefault.. 2023. 4. 5.
과제 진행하기 https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 잘못 이해했다 시간이 많이 걸렸다 이런 화가 난다 def solution(t1): t1.sort(key=lambda x:x[1]) t1=list(map(lambda x:[x[0],int(x[1].split(":")[0])*60+int(x[1].split(":")[1]),x[2]],t1)) t3=[] t2=[] lll=0 while len(t1)!=1: a=t1[0][1]+int(t1[0].. 2023. 4. 3.
저자 별 카테고리 별 매출액 집계하기 https://school.programmers.co.kr/learn/courses/30/lessons/144856 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 테이블이 3개니까 최소 조인은 2번이지만 조인이 3번이나 들어간다 그리고 중간에 서브 쿼리까지 있으니까 많이 복잡해짐 그래도 이렇게 해서 원하는 조건을 모두 만족하는 데이터를 걸러낼 수 있다. 각각 테이블에 조건이 있으니까 처음에는 서브 쿼리로 해당하는 조건의 데이터만 가져오고 그 조건에 맞는 데이터만 다시 조인한다 select a.author_id,d.AUTHOR_NAME,a.category,.. 2023. 4. 2.
주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 릿 코드인가 언제 한번 풀어본 거 같다 이런 문제 그때 알았던 스택 스택을 모르면 일반적으로 시간 복잡도가 n**2라는 비효율적인 결과가 나온다 핵심은 지금 수보다 큰 수가 언제 나오는지이다 하나씩 스택에 쌓다가 제일 마지막 보다 큰 수가 나오면 마지막보다 작아질 때까지 스택에서 마지막 수를 계속 빼준다 어차피 큰 수를 만나면 그보다 작은 건 다 제거되기 때문에 정렬이나 순서는 신경 쓰지 않아도 .. 2023. 4. 1.
영어 끝말잇기 https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2가지 조건 1번 - 동일한 단어가 반복하면 패배 2번 - 앞사람의 마지막 알파벳과 첫 번째 알파벳이 같으면 패배 1번은 단어 카운트해서 2가 되면 리턴 2번은 변수에 앞사람의 알파벳 저장하여 같으면 리턴 def solution(n, words): d={} a=words[0][0] for s,i in enumerate(words): if a!=i[0]:return[s%n+1,s//n+1] a=i[.. 2023. 3. 31.
이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열에서 0을 제거하고 리턴 한 문자열의 길이를 다시 이진수로 바꾸고 반복 0과 1 밖에 없으니까 그냥 replace로 제거하면 간단하다 그럼 바로 남는 문자열 길이 나오고 그 길이를 다시 이진수로 바꾸고 파이썬이라 이렇게 간단한 듯 bin 함수는 문자열로 리턴하고 앞에 이진수라는 표시가 있어서 그거 제거하고 가져온다 def solution(s): ss=0 n=0 while s!="1": l=l.. 2023. 3. 28.
다단계 칫솔 판매 https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 제목부터 정신 나간 문제 정신이 나갈 거처럼 어렵지는 않다 모두가 아는 그런 것 제일 아래는 판매금액의 10%를 위로 상납한다 그렇게 연어처럼 거슬러 올라가다 보면 결국 가장 위는 아무것도 안 해도 돈이 쌓인다 어쨌든 이 망할 구조를 만들어보자 일단 판매원과 그 직속 상사 리스트가 주어지면 관리하기 편하게 딕셔너리를 이용해 부하를 key로 상사를 value로 만들어준다 그리고 각각 부하직원에 판매.. 2023. 3. 27.
자동차 대여 기록 별 대여 금액 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151141 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 버릇이 없지만 쉬운 편인 sql 문제들 그래도 좀 난이도가 있는 편이라 길어졌다 3개의 테이블이 연관되어 있어서 n-1 번 즉 2번의 조인을 하고 조인 내부에서는 서브 쿼리 써서 필요한 값을 뽑는 과정들이 복잡하다 윈도우 함수를 몰랐으면 더 복잡해졌을 거 같은데 sqld가 이런 도움을 주다니 나머지는 운명에 맡기겠다 SELECT b.HISTORY_ID,(b.END_DATE-b.START_DATE.. 2023. 3. 26.
광물 캐기 곡괭이가 광물을 보다 적다면 일단 앞에서 몇 개까지 가능한지 뽑는다 그리고 뽑은 광물은 순서가 상관없으니까 곡괭이 했을 때 피로도가 몇씩 다는지 확인한다 그러면 그 합이 가장 큰 광물들이 가장 좋은 곡괭이로 때려야 함 순서대로 곡괭이 소모하면서 피로도 더해준다 원하는 단어나 문장을 입력해 주세요. def solution(pic, t): a=b=c=0 l=[] for n,i in enumerate(t,start=1): if i[0]=="d": a+=1 elif i[0]=="i": b+=1 else: c+=1 if n%5==0: l.append([a,b,c]) a=b=c=0 if a+b+c!=0: l.append([a,b,c]) l=l[:sum(pic)] t=sorted([(i[0]*1+i[1]*1+i[2].. 2023. 3. 24.
당구 연습 https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이런이런 1레벨에서 2레벨로 올라가다니 충분히 어려웠다 처음에 무슨 이상한 방법 다 생각해도 틀려서 풀지 못할뻔했지만 그딴 건 없다 결국 힌트는 입사각과 반사각이 같다는 것 공이 튕기는 방향으로 선을 그으면 닮음 삼각형 2개가 생긴다 밑변의 길이는 알 수 있고 각도가 같으니까 서로 비율도 일정해서 각각 cos, sin 값의 비율을 구해서 적용하면 거리도 구할 수 있다 생각보다 간단하게 끝난다 모.. 2023. 3. 21.