배달할 설탕 개수 구하기큰 설탕을 기준으로 함작은 설탕을 먼저 빼는 것이 중요!(쓸데없는 경우의 수를 줄여줌 => 3으로 딱 떨어지는 경우를 추가할 필요 없어짐)달팽이 문제1\. a,b,v = map(int, input().split()) 여러개를 받을 때는 map
규칙
1874. 스택 수열 스택을 활용 숫자 한개를 받았을 때 pop은 한번만 해야함 push는 여러번 가능 주어지는 숫자 배열 = l x번째 숫자 = l(x) max = 스택에 들어갔었던 가장 높은 수 l(x) >= max -> 스택에 l(x)까지만큼 넣기 ...
int형태의 list로 받기: list(map(int, input().split())) list안의 nim,max 구하기: max(list), min(list)
2-1 11047. 동전 0 그리즈만 알고리즘을 이용 가장 큰 동전(c)부터 K와 비교 while c - 뒤에 값들은 모두 더해 빼야 최소값 첫 번째 index는 sum변수에 더해야 함 나머지는 모두 빼면 됨 ------------------- 1000, 1001
11399. ATM 브루트포스 알고리즘 1934. 최소공배수 ㅁㄴㅇ 1436. 영화감독 숌 브루트포스 알고리즘 1008 1의 자리만 생각하면됨. -> 10가지 경우만 생각하면된다. 1009번 1의 자리만 생각하면됨
2798. 블랙잭 브루트포스 알고리즘 모든 경우의 수를 함 max = 현재값 max = 현재값 2231. 분해합 브루트포스 알고리즘 for i in range(N-1,1,-1): #모든 숫자 돌기 각 자리수를 더하기 for j in range(le...
1010. 다리 놓기 순서 없는 뽑기! nCk = M! / ( N! X (M -N)!) => factorial(M)//factorial(N)//factorial(M-N) 1003. 피보나치 함수 전역변수로 풀기가 가능하나 시간초과! n = 입력 값 Z(n) = 총...
11053\. 가장 긴 증가하는 부분 수열 참고
2609. 최대공약수와 최소공배수 최대공약수와 최소공배수 찾기 lcm(a,b) = ab/gcd(a,b) 이용 9461. 파도반 수열 길를 정하는데 규칙이 있다. dp[k] = dp[k-5]+dp[k-1] ------------------- 1149. RGB거리 첫번째를 R...
11729. 하노이 탑 이동 순서 2^n-1번의 이동 필요 a, b, c기둥이 있을 때 a=>c로 이동, 원반이 n개가 있을 때: n=1일 때는 옮기고 종료 n-1개를 b 기둥에 옮긴다(재귀) 가장 큰 원반을 c 기둥에 옮긴다 n-1개를 c 기둥에 옮긴다(재귀) 11...
2110. 공유기 설치 X.sort()를 해준다 임의의 거리를 두면서 공유기를 설치, 공유기의 총 개수(count)를 센다. count >= C --> 이때의 임의의 거리가 공유기 사이의 최대 거리가 된다 1300. K번째
1018. 체스판 다시 칠하기 브루트포스 알고리즘 W시작 시 다시 칠해야하는 개수를 판별하는 함수 만들기 B시작 시 다시 칠해야하는 개수를 판별하는 함수 만들기 받은 배열을 8X8형태로 함수에 삽입
1015. 수열정렬 A를 오름차순 정렬할때 각 원소가 어디로 정렬될지만 알면 됨 ------------------- 1026. 보물 Max(A) x Min(B) or Max(B) x Min(A) 둘중 하나로 계산하면됨 ----
1051. 숫자 정사각형 브루트포스 알고리즘 ------------------- 1052. 물병 N을 이진수로 바꿔 생각하면 쉽다. 예) 13일 때 8, 4, 0, 1 (1101) 여기에 물명이 하나 씩 계속 산다고 했을 때 이진수의 1의 개수가 K보다 클때 멈추면 된다. -------...
1052\. 물병
1059\. 좋은 구간
1059. 좋은 구간 수학
문제2839 배달할 설탕 개수 구하기
한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 1 ~ 99 까지는
문제1316 그룹 단어 체커
2021년 12월, 네 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 오프라인 대회를 대비하여 강의실을 예약하려고 한다.강의실에서 대회를 치르려면 거리두기 수칙을 지켜야 한다!한 명씩 앉을 수 있는 테이블이 행마다 W개씩 H행에 걸쳐 있을 때, 모든 참가자는 세로로 N
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.1/1 1/2 1/3 1/4 1/5 …2/1 2/2 2/3 2/4 … …3/1 3/2 3/3 … … …4/1 4/2 … … … …5/1 … … … … …… … … … … …이와 같이 나열된 분수들을 1/1 → 1/2 →
N×M크기의 배열로 표현되는 미로가 있다.1 0 1 1 1 11 0 1 0 1 01 0 1 0 1 11 1 1 0 1 1미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아
철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.n=1 1n=2 2n=3 3n=4 5n=5 8n=6 13n=7 21...n>2, F(n) = F(n-1)
알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.Arrays.sort(stringList, new Comparator()
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.크로아티아 알파벳 변경č : c=ć : c-dž : dz=đ : d-lj : ljnj : njš : s=ž : z=예를 들어, ljes=njak은
신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 <그림 1>과 같이 네트워크 상에서 연결되어 있다고 하자. 1
45656이란 수를 보자.이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다.N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다.n = 7 일 때,xxxxxx3의 계단 수는xxxxx2, xxx
1. 연속합 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21
효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다.포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고,
1. 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 첫째 줄에 온라인 저지 회원의 수 N이 주어진다.
2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오.첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오.첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N
정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 여섯 가지이다.push X: 정수 X를 큐에 넣는 연산이다.pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는
방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.1+1+1+11+1+21+2+12+1+12+21+33+1정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작
자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열고른 수열은 오름차순이어야 한다.
N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다.N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.
<문제>자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.1부터 N까지 자연수 중에서 M개를 고른 수열같은 수를 여러 번 골라도 된다.고른 수열은 비내림차순이어야 한다.길이가 K인 수열 A가 A1 ≤ A2
<문제>인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각
이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오.예를 들어 위와 같은 이진 트리가 입력되면,전위 순회한 결과 :
1. LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 첫째 줄
위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다
N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아, 4g 기지국을 5g
n개의 송전탑이 전선을 통해 하나의 트리 형태로 연결되어 있습니다. 당신은 이 전선들 중 하나를 끊어서 현재의 전력망 네트워크를 2개로 분할하려고 합니다. 이때, 두 전력망이 갖게 되는 송전탑의 개수를 최대한 비슷하게 맞추고자 합니다.송전탑의 개수 n, 그리고 전선 정
어느 왕국에 하나 이상의 도시들이 있습니다. 왕국의 왕은 새 도시를 짓기로 결정하였습니다. 해당 도시를 짓기 위해서는 도시를 짓는 장소에 금 a kg과 은 b kg이 전달되어야 합니다.각 도시에는 번호가 매겨져 있는데, i번 도시에는 금 gi kg, 은 si kg, 그
길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다.배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록
운영체제의 역할 중 하나는 컴퓨터 시스템의 자원을 효율적으로 관리하는 것입니다. 이 문제에서는 운영체제가 다음 규칙에 따라 프로세스를 관리할 경우 특정 프로세스가 몇 번째로 실행되는지 알아내면 됩니다.실행 대기 큐(Queue)에서 대기중인 프로세스 하나를 꺼냅니다.큐에
n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다