Loading...
2024. 3. 27. 03:59

job assignment problem으로 알아보는 비트마스킹을 이용한 다이나믹 프로그래밍

1. 문제 1311번: 할 일 정하기 1 (acmicpc.net) 1311번: 할 일 정하기 1 N명의 사람과 N개의 일이 있다. 각 사람은 일을 하나 담당해야 하고, 각 일을 담당하는 사람은 한 명 이어야 한다. 또한, 모든 사람은 모든 일을 할 능력이 있다. 사람은 1번부터 N번까지 번호가 매 www.acmicpc.net N명의 사람이 있고, N개의 일이 있는데 각각의 일은 하는데 비용이 든다. 각 사람 1명당 1개의 일만 가능하고 각 일은 1명만이 맡을 수 있다. 이럴 때 최소비용은 얼마인가? 2. 풀이 이런 형태의 문제는 N명의 사람이 1,2,3,4,..,N의 순열대로 배정을 해본후, 각각의 경우에 대해 비용을 전부 조사해서 최솟값을 찾는 방식을 배웠다. 3명이면 (1,2,3), (1,3,2), ..

특정 위치까지는 함께 이동하고 나머지는 따로 이동할 때 최단거리 구하기

코딩테스트 연습 - 합승 택시 요금 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr A,B가 s에서 출발하는데 어떤 위치까지는 함께 갈 수 있고 그러다가 각자 도착 위치 a,b로 간다고 한다면... 최소 요금은 얼마인가 물론 함께가지 않아도 최소라면 그래도 된다 복잡하게 생각하면 상당히 어렵다.. 어디까지 함께 가야하나?.. 함께 가는 거리가 최소여야하나??... 함께 가는 거리가 최소더라도.. 나머지 A,B까지 가는 거리는 최소로 해야하나???... 함께 가는 거리가 최소가 아니더라도.. 나머지 A..

코딩테스트 복기 - 당장 행동하지 않고 나중에 필요할 때 행동하는 그리디 알고리즘 테크닉

1. 문제 코딩테스트 연습 - n + 1 카드게임 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 무작위로 뒤섞인 1부터 n까지 카드가 n장 있고, coin개의 동전을 가지고 있는데 처음에 n/3장을 가지고 시작 각 라운드가 시작할때 카드를 2장 뽑는데 카드 1장당 동전 1개를 소모해서 가지거나 버릴 수 있다 가지고 있는 카드에 적힌 수의 합이 n+1이 되도록 카드 2장을 내고 다음 라운드로 넘어간다. 카드를 내지 못하거나 모든 카드를 뽑아 더 이상 뽑을 수 없으면 게임 종료 게임을 가장 ..

2024. 2. 3. 00:56

코딩테스트 복기 - 복잡한 그래프 생각하면서 효율적으로 탐색 하기

1. 문제 코딩테스트 연습 - 도넛과 막대 그래프 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 핵심은 눈치 잘 챘는데.. 시간의 압박에 못이겨서 그런건지 시간초과에서 못벗어났다.. 다시 풀어보니까 시간복잡도를 생각해서 기본에 충실하게 DFS 그래프 탐색을 구현한다면 생각보다 쉽게 풀 수 있더라고 평면에 도넛, 막대, 8자모양 그래프가 여러개 있는데.. 이 그래프와 무관한 하나의 정점을 생성하고 이 정점과 각 그래프의 임의의 정점 중 하나에 연결시켰다 무관한 하나의 정점 번호와 도넛, 막..

2023. 11. 9. 00:30

SQL 연습 - 비교연산자 = , if 조건문이 여러개일때.. case ~ when

1. 문제 코딩테스트 연습 - 조건에 부합하는 중고거래 상태 조회하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 먼저 문제를 잘 읽어야한다... 중고거래 게시물의 게시글 ID, 작성자 ID, 게시글 제목, 가격, 거래상태를 조회하는 SQL문을 작성해주세요.. 근데 잘 보면.., '2022년 10월 5일에 등록된' 게시글의 게시글ID,...를 조회하라고 나와있잖아 SELECT BOARD_ID, WRITER_ID, TITLE, PRICE, STATUS FROM USED_GOODS_BOAR..

SQL 연습 - 통계함수 사용할때 주의할 점, limit로 지정한 수 만큼 행 추출

1. 문제 코딩테스트 연습 - 상위 n개 레코드 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 DATETIME이 최소가 될때, NAME을 출력하면 되는데 SELECT NAME,MIN(DATETIME) FROM ANIMAL_INS; 이렇게 해가지고, 여기서 NAME만 뽑아오면 되는거 아니냐? SELECT NAME FROM (SELECT NAME,MIN(DATETIME) FROM ANIMAL_INS) A; 근데 이러면 오답이더라고... 왜 그런지 분석을 해봤는데.. SELECT NAME,DA..