알고리즘 문제풀이/프로그래머스
-
[프로그래머스/Level 2] 카카오프렌즈 컬러링북 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 3. 15:33
programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 전형적인 BFS 문제로 어렵지 않은 문제다. 다만 영역을 구할 때 값이 매번 바뀌므로, 이를 tmp에 저장하고 큐의 탐색이 진행되어야 한다. #include #include using namespace std; int row, col; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int BFS(int r, int c, vecto..
-
[프로그래머스/Level 2] 가장 큰 수 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 1. 18:55
programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr numbers 벡터의 원소들을 to_string을 통해 문자열로 바꾼 후, 새로운 벡터에 넣어준다. 내림차순을 해주는데, 이 때 앞의 문자열과 뒤의 문자열을 합쳤을 때 어떤게 더 값이 큰지 비교한다. ex) "6", "15" 일 때, "615" 가 "156" 보다 크다. 이때 [0, 0, 0]이 입력되었을 때, ..
-
[프로그래머스/Level 2] 프린터 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 1. 15:51
programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 1. 중요도, 대기 목록 위치를 담을 pair형 벡터 print 선언 2. 우선순위를 내림차순으로 정렬하고, 큐에다가 push 3. 처음을 가리키는 idx를 선언하고, print[idx]의 first값과 큐의 front 값을 비교 - print[idx].first < q.front() 라면 현재 print 원소를 tmp에 저장하고 삭제, 그리고 tmp를 맨 뒤에 삽입 - prin..
-
[프로그래머스/Level 2] 다리를 지나는 트럭 (C++)알고리즘 문제풀이/프로그래머스 2020. 11. 1. 14:46
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 1. 큐 ready를 선언하고, truck_weight의 원소들을 모두 push 2. 다리를 건너는 트럭을 나타내는 pair형 벡터 onBridge를 선언 (트럭의 무게와 이동거리 저장) 3. 현재 다리 위에 있는 트럭의 무게 합과 큐의 front() 값이 weight의 무게보다 작거나 같은지 비교 (이때 앞에 큐가 비어있는지 반드시 확인) 4. onBridg..
-
[프로그래머스/SQL] String, Date (MySQL)알고리즘 문제풀이/프로그래머스 2020. 10. 31. 00:42
https://programmers.co.kr/learn/courses/30/parts/17047 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 루시와 엘라 찾기 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty') ORDER BY ANIMAL_ID; 이름에 el이 들어가는 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%..
-
[프로그래머스/SQL] JOIN (MySQL)알고리즘 문제풀이/프로그래머스 2020. 10. 31. 00:41
https://programmers.co.kr/learn/courses/30/parts/17046 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 없어진 기록 찾기 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL ORDER BY OUTS.ANIMAL_ID; 있었는데요 없었습니다 SELECT OUTS.ANIMAL_ID, OUTS.NAME FROM..
-
[프로그래머스/SQL] IS NULL (MySQL)알고리즘 문제풀이/프로그래머스 2020. 10. 31. 00:40
https://programmers.co.kr/learn/courses/30/parts/17045 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이름이 없는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NULL ORDER BY ANIMAL_ID; 이름이 있는 동물의 아이디 SELECT ANIMAL_ID FROM ANIMAL_INS WHERE NAME IS NOT NULL ORDER BY ANIMAL_ID; NULL 처리하기 SELECT ANIMAL_TYPE, IF(NAME IS NOT NULL, NAM..
-
[프로그래머스/SQL] GROUP BY (MySQL)알고리즘 문제풀이/프로그래머스 2020. 10. 31. 00:39
https://programmers.co.kr/learn/courses/30/parts/17044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 고양이와 개는 몇마리 있을까 SELECT ANIMAL_TYPE, COUNT(*) FROM ANIMAL_INS GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE; 동명 동물 수 찾기 SELECT NAME, COUNT(NAME) FROM ANIMAL_INS WHERE NAME IS NOT NULL GROUP BY NAME HAVING COUNT(NAME) >= 2 ORDER BY NAME; ..