본문 바로가기

Algorithm

(72)
[1일 1알고] 유연 근무제 https://school.programmers.co.kr/learn/courses/30/lessons/388351 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 시간이라는 조건을 이용하는 간단한 문제입니다. 문제 조건에 직원이 출근하지 않는 날이 있을 수 있다는 언급이 없으며schedules[i]자체가 1100보다 작기 때문에 날짜가 넘어갈 일이 없습니다. 일반적으로 하는 시간 낚시가 없기 때문에 50 + 10 = 110같은 기본적인 시간 연산만 신경쓰면 쉽게 통과할 수 있습니다. #include #include using namespace std;int solution(vector schedules, vec..
[1일 1알고] 완전 범죄 https://school.programmers.co.kr/learn/courses/30/lessons/389480 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번 문제는 DP문제입니다.보면 A혹은 B도둑이 물건을 훔치는 경우를 고려해야하는데 depth가 최대 40이므로 dfs 등 완전탐색 기반의 알고리즘을 사용하기에는 무리가 있습니다. 따라서 일단 DP방식을 생각해야합니다. 필요한 정보는 현재 시점에서 a가 남긴 흔적, b가 남긴 흔적입니다.그런데 하나의 이차원 배열로만 상태를 관리하기에는 이전의 상태만 고려해야하지 그보다 이전의 상태는 고려하면 안되기 때문에 두 개의 배열을 통해 왔다갔다 하도록 했습니다..
[1일 1알고] 서버 증설 횟수 https://school.programmers.co.kr/learn/courses/30/lessons/389479 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr Lv2라고 하는데 굉장히 간단한 문제입니다. 서버의 최소 증설 횟수를 알아야하는데 배열 범위안에서 간단한 사칙연산을 통해 계산해 구할 수 있습니다.#include #include using namespace std;int solution(vector players, int m, int k) { int time = players.size(); vector servercnt(time, 0); int answer = 0; for (in..
[1일 1알고] 노란불 신호등 어제 문제는 풀었는데 포스팅을 안했었네요 https://school.programmers.co.kr/learn/courses/30/lessons/468371 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr여러 신호등이 각자의 주기에 따라 초록불, 노란불, 빨간불이 번갈아 점등하고 있는 상황입니다.문제의 답은 모든 신호등이 동시에 노란불인 가장 빠른 시각을 찾는 것입니다. 이런 상황이면 항상 제한사항을 먼저 보게됩니다.signals = 신호등의 개수는 5이하입니다.그리고 G, Y, R 은 각각 1보다 크고 18보다 작으며 합치면 20보다 작습니다. 결론적으로 문제의 답은 각 신호등의 주기의 최대 공약수를 넘지 않을..
[1일 1알고] 특정 형질을 가지는 대장균 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/301646 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번에는 간단한 SQL 문제입니다. GENOTYPE에 따라 비트마스킹을 하는 문제입니다.2번 형질을 보유하며 1번, 3번을 보유하지 않는 row를 count하면 됩니다.SELECT COUNT(*) AS COUNTFROM ECOLI_DATAWHERE (GENOTYPE & 2) = 0 AND ((GENOTYPE & 1) != 0 OR (GENOTYPE & 4) != 0);
[1일 1알고] [PCCE 기출문제] 1번 / 문자 출력 https://school.programmers.co.kr/learn/courses/30/lessons/340207 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 오늘 처음 프로그래밍을 시작한 학생도 풀 수 있는 문제입니다. 바쁜 날이어서 간단하게 떼우는 날입니다.
[1일 1알고] B3 23971 ZOAC 4 https://www.acmicpc.net/problem/23971 23971번: ZOAC 4i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크www.acmicpc.net간단한 사칙연산 계산 문제입니다. 직접 배열을 만들어서 계산해도 시간 통과는 충분하겠지만 시간이야 줄이면 좋으니까요 W*H 배열에 세로 N, 가로 M칸 간격으로 앉아야합니다. 기본적으로 2칸마다 앉는다면 2, 4, 6, 8 처럼 계산하는 것이 편할 것입니다.하지만 1, 3, 5, 7, 9와같이 앉게되기때문에 계산을 위해서 첫칸에는 앉는다고 치고 계산했..
[1일 1알고] Lv2 힌트 스테이지 https://school.programmers.co.kr/learn/courses/30/lessons/468377 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krBOJ가 문을 닫는다니 아쉬운 일이네요오늘부터는 다른 사이트들에서도 문제를 풀어가려고 합니다.// 1->n개의 스테이지 해결 필요// 스테이지 해결을 위해서는 비용 필요, 힌트권 사용시 비용 감소// i번 힌트권은 i번에서 사용 가능// 한 스테이지에서 힌트권은 n-1개 사용 가능// 힌트 번들을 최대 1개 구매 가능// 힌트 번들은 이후 스테이지의 힌트권 제공// 입력 cost = 각 스테이지의 힌트권 사용 수에 따른 해결비용// hint = 구매 가..