전체 글
-
[프로그래머스] LV1. 명예의 전당(1)알고리즘 2023. 3. 9. 14:40
문제 https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 이번 문제는 간단하다. k번째까지는 res에 담아주면서 최솟값을 ans에 담아준다 2. k번째 이후부터는 res의 최솟값보다 크면 최솟값이랑 score의 새로운 값이랑 변경 해주고 내림차순 정렬을 해주면 된다 3. 다만, k번째 이후 res의 최솟값보다 작다면 res의 최솟값을 ans에 담아줘야 한다는것을 잊지말자 풀이 def solution(k, score): ans = [sc..
-
[프로그래머스] LV1. 크기가 작은 부분 문자열알고리즘 2023. 3. 9. 14:27
문제 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 처음에는 조합으로 len(p) 길이로 나올 수 있는 모든 경우의 수를 체크해야하나 싶었는데, 문제를 제대로 읽어보니 틀렸다 2. t에서 len(p) 크기만큼 순차적으로 나오는 경우의 수를 확인해 봐야 한다 3. 그래서 len(p)로 잘랐을때 len(p) 길이와 같고 int 값으로 변경했을때 p보다 크다면 ans += 1 해줘가면 된다 풀이 def solution(t, p): an..
-
[프로그래머스] LV1 과일 장수알고리즘 2023. 3. 9. 14:02
문제 https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 하나의 박스에는 m개의 사과만큼 담기 때문에 len(score) // m 이다. 2. 사과들을 내림 차순 정렬하고 " 금광 " 의 문제처럼 [idx:idx+m] 개씩만 ans에 담고 " 가장 품질이 낮은 사과의 가격 * 개수 "의 값들을 answer 에 더해가면서 값을 찾는다. 풀이 # 박스 가격 = 가장 낮은 상품 * 개수 def solution(k, m, score): ans..
-
[프로그래머스] LV1. 카드 뭉치알고리즘 2023. 3. 9. 13:17
문제 https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 1. 처음에는 card1, card2에 대한 조합 중에 goal과 같은게 있으면, Yes 없으면 No 를 return 하려고 했는데, 2가지 배열에 대한 조합 구하는 방법을 모르겠어서 PASS 2. 두번째로 생각한 방법은 for i in goal 이렇게 for문을 돌려서 i == cards1[0] 혹은 i == cards2[0] 일때마다 i == cards1 이면 cards1 = ca..
-
[프로그래머스] Lv1. 바탕화면 정리알고리즘 2023. 3. 8. 13:51
문제 https://school.programmers.co.kr/learn/courses/30/lessons/161990 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 그림으로 그려보면 결국 알수있는 점은 x1 = 가장 위쪽 , y1 = 가장 왼쪽 x2 = 가장 아래쪽 , y1 = 가장 오른쪽 을 표현하면 된다! 이다. 표현하기 위해서 x1,x2,y1,y2를 각각 초기화 해주고 ( 초기화는 범위를 잘 체크해주면 된다 ) , '#' 이 나올때마다 그 위치의 값을 적용시켜주면 된다. 참고로, elif i > x2 같은 코드를 적으면 #이 한개있을때를 만..
-
[백준] 20040 사이클 게임알고리즘 2023. 2. 17. 19:43
문제 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 풀이 - 문제에서 ' 사이클을 완성하는 순간 게임이 종료 ' 라는 말을 보고 우리가 기본적으로 아는 서로소 집합 ( union-find ) 이라고 생각했다 - ' m 번의 차례를 모두 처리한 이후에도 종료되지 않았다면 0을 출력한다. ' 을 볼 수 있는데, 이는 m번을 다돌았는데 다같이 find가 다를수있다는 말이다 - 이미 정답이 나왔으면 더이상 실행할 필요가 없다. ( 하지만 나는 ..
-
[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기SQL-프로그래머스 2023. 2. 16. 10:26
문제 문제를 정리하면, 데이트 포맷을 주의해서 TLNO is not null & gender = 'W' & 생일이 3월인 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성하기 배운 점 - 몇월, 몇시간 이란 조건은 MONTH(DATE) = 3, HOUR(시간) = 3 이런식으로 표현하면 된다 풀이 SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d') FROM MEMBER_PROFILE WHERE MONTH(DATE_OF_BIRTH)=3 AND TLNO IS NOT NULL AND GENDER ='W' ORDER BY MEMBER_ID;
-
[알고리즘] 백준 - 극장좌석알고리즘 2023. 2. 15. 22:06
문제 풀이 - 이 문제는 고정석을 기준으로 풀어야 한다 - 시작점 - 고정석 - 고정석 - 끝점 : 사이의 3칸을 기준으로 사이사이에 몇칸이 있는지 확인하고 새로운 배열에 넣어둔다 - 새롭게 넣어둔 배열의 원소 값들로 피보나치 수열 이랑 같은 점화식으로 결과값 이끌어 내면서 값들을 곱하면 된다 코드 # 실버 1 - 2302 import sys input = sys.stdin.readline n = int(input()) m = int(input()) if n >= 2: d = [i for i in range(1, n+1)] for i in range(m): data = int(input()) d[data-1] = 0 res = [] cnt = 0 for i in range(n): if d[i] != 0:..