본문 바로가기

Algorithm/PS

(60)
[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 = 구매 가..
[1일 1알고] G4 1806 부분합 https://www.acmicpc.net/problem/1806 이번 문제는 투 포인터를 사용하는 문제입니다. 부분합을 보고 처음에는 1부터 시작해 부분합 범위를 점점 늘려가며 답을 찾아보려했습니다.하지만 이 방법은 O(N^2)인데, 조건이 N이 최대 10만이고 시간 제한이 0.5초이기 때문에 이 방법은 불가했습니다. 따라서 O(N)방법인 투 포인터를 사용했습니다. #include #include #include #include #include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N, S; cin >> N >> S; vector v(N, 0); ..
[1일 1알고] G4 2294 동전 1 유명한 dynamic programming문제인 동전 문제입니다.이전의 동전2문제와 다르게 https://basaeng.tistory.com/125 [1일 1알고] G5 2294 동전 2https://www.acmicpc.net/problem/2294 가장 기본적인 DP문제입니다.예전에는 아이디어가 전혀 떠오르지 않았는데 이제는 생각나는게 신기하네요 n가지 동전을 통해 k원을 만드는 문제입니다.배낭문제와basaeng.tistory.com이번 문제는 특정 숫자 K를 위한 최소 동전의 개수가 아닌 K를 만들 수 있는 경우의 수를 계산합니다. 여기서 중요한 것은 경우의 수는 순서를 고려하지 않는 것입니다. 예를 들어 3을 만들 때 1+2와 2+1은 같은 경우의 수입니다.int main(){ ios::sy..
[1일 1알고] G4 11054 가장 긴 바이토닉 부분 수열 https://www.acmicpc.net/problem/11054 이 문제는 LIS문제에서 조금만 더 생각해보면 쉽게 해결할 수 있습니다. https://basaeng.tistory.com/118 [1일 1알고] G5 2565 전깃줄https://www.acmicpc.net/problem/2565 꼬여있는 전깃줄을 풀어야 하는 문제입니다.먼저 입력이 뒤죽박죽 주어지기 때문에 문제를 쉽게 풀기 위해서 A 전봇대의 높이에 따라 정렬해보았습니다. 그러고 보basaeng.tistory.com위의 문제는 LIS문제였습니다.바이토닉 부분 수열이란 어떤 수 Sk를 기준으로 S1 2 k-1 k > Sk+1 > ... SN-1 > SN을 만족 하는 수입니다. 결론적으로 Sk를 기준으로 좌측에서는 증가 부분 수열, 우측..