https://www.acmicpc.net/problem/1018n, m, board 모두 입력받고ans 는 최댓값인 64 로 초기화체스판의 시작 값은 n-7 \* m-7 만 가능하니까해당 크기만큼 보면서 8 \* 8 만큼이 규칙에 맞는지 확인wb 는 0 또는
https://www.acmicpc.net/problem/1085(x, y) 와 직사각형의 경계선까지의 경우는 총 4 가지이므로그 중 최솟값을 찾아서 출력https://www.acmicpc.net/problem/1012field 값이 1 이면 재귀 돌
https://www.acmicpc.net/problem/1181중복되지 않는 단어들만 words 에 저장하고 길이를 기준으로 정렬을 해준 후dic 에 같은 길이의 단어들을 묶어서 저장다시 dic 값을 보면서 value 값을 정렬하고 print(단어의 길이,
https://www.acmicpc.net/problem/12590 이 나올 때까지 입력을 계속 받아야 하므로 while True반으로 잘라서 대칭이 되는지 확인=> 대칭이면 yes 아니면 no 출력https://www.acmicpc.net/probl
https://www.acmicpc.net/problem/1436666, 1666, 2666, 3666, ... 의 순서라면(N-1) 666 의 형태를 갖는다고 생각함근데.. 아니었다...5666 다음에는 6666 이 아니라 6660 이 됨=> ..., 566
https://www.acmicpc.net/problem/1654기존 랜선의 최대 길이까지 넉넉하게 범위를 잡아준 후length 만큼 랜선 자르기 진행cnt 가 N 개 이상이면 ans 를 최대 길이로 updateN 개 이하가 되면 바로 break너무 오래 걸려
https://www.acmicpc.net/problem/1874stack 은 1 부터 시작하므로 미리 1 을 넣어주고 result 도 "+" 부터 넣어줌다음으로 stack 에 들어갈 값은 i => 2 로 초기화inp0 값과 같아질 때까지 i 를 stack 에
https://www.acmicpc.net/problem/1920A 는 정렬해주고 B 의 숫자들마다 이분탐색 돌리기TF 로 존재하는지 판단해서 존재하면 1 출력, 아니면 0 출력https://www.acmicpc.net/problem/1541최솟값이
https://www.acmicpc.net/problem/1929전에 봤던 에라토스테네스의 체를 이용해서 풀어봤다큰 수인 N 만큼 nums 를 만들어서 1 로 초기화2 ~ 루트N 까지의 숫자들의 배수를 모두 0 으로 바꿔주기(0, 1 도 0 으로 바꿔줌)num
https://www.acmicpc.net/problem/1966(우선순위, 인덱스) 형태로 저장하고min-heap, deque, ... 써봤는데 잘 안됐다...ㅎ그래서 그냥 우선순위가 담긴 리스트 q 와 문서의 번호를 담은 nums 두개의 리스트를 사용문서의
https://www.acmicpc.net/problem/2108입력받은 숫자들은 nums 에 모두 저장한 후 sort()산술평균 : N개의 수들의 합을 N으로 나눈 값round() 함수로 소수점 이하 첫째 자리에서 반올림하도록 함중앙값 : N개의 수들을 증가
https://www.acmicpc.net/problem/2164처음에 좀 어렵게 생각해서 규칙을 찾으려 했는데 실패하고...^^그냥 deque 사용해서 문제 고대로 풀었더니 통과했다1 ~ N 까지의 숫자들을 nums 에 모두 저장하고nums 에 1 개의 숫자
https://www.acmicpc.net/problem/2231뭔가 규칙을 찾으려 했지만... 안됐고브루트포스로 하니까 통과됐다1 ~ N-1 까지의 숫자들이 N 의 생성자가 되는지 일일이 확인가장 먼저 발견된 생성자가 가장 작으므로 break 1 ~ N-1
https://www.acmicpc.net/problem/2292이건 무조건 규칙 문제다 싶어서 열심히 규칙을 찾아봤다1 을 둘러싼 둘레가 관건이었음각 둘레마다 n+1 개의 방을 지나가며 이게 최소 개수가 된다(1 도 하나의 방에 포함되므로 n+1)첫번째 둘레
https://www.acmicpc.net/problem/2609A, B 의 약수들을 각각 a, b 에 저장하고최대공약수를 구하기 위해 a 와 b 의 교집합 a & b 인 gcd 를 구함최대공약수는 gcd 의 최댓값최소공배수는 A\*B 를 최대공약수로 나눈 값
nums 에 모두 저장 후 sort 하기파이썬 기본 sort 는 O(nlog(n))기본 sort 외에는 퀵 정렬이나 merge sort 등을 사용할 듯merge sort 이용left, mid, right 로 구역을 나눠서 정렬넘 느리다...https://www
https://www.acmicpc.net/problem/27750 층은 1 ~ n 호가 있고 i 호는 i 명이 있으므로nums = 1, 2, 3, ... , n 로 초기화자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합 을 만족해야하므로0 층부터
https://www.acmicpc.net/problem/2798Leetcode 의 3 Sum 문제가 생각이 났다어차피 3 중 for 문 돌리는 거 조금이라도 더 빨리 할 수 있지 않을까 싶어서cards 정렬 후 각 숫자들을 최대한 큰 값부터 보면서 더해감M
https://www.acmicpc.net/problem/2805나무들을 높이 1 씩 잘라감나무의 전체 높이 합이 M 일 경우 자를 필요가 없으므로 print 0나머지는 정렬하고같은 높이의 나무를 알기 위해 Counter 를 구해줌0 높이의 나무는 미리 제외
https://www.acmicpc.net/problem/9184while True 문을 돌려서 입력을 받고 a, b, c 모두 -1 일 때 break 하도록 함재귀는 현재 조합의 값이 이미 구한 값이면 그 값을 사용하고아니면 조건대로 재귀 돌려서 dp 값 구
https://www.acmicpc.net/problem/2839nums 리스트를 만들어서 처음 3, 5 만 1 로 초기화3, 4 일 경우는 예외 처리해주고5 이상일 경우는 반복문 돌려서 dp 이용5 를 뺀 값이 3 을 뺀 값 보단 작은 값이 될 것이므로num
https://www.acmicpc.net/problem/2869A == V 일 때는 하루면 되니까 1 print나머지는 A 가 B 보다 크니까 마지막 하루는 A 미터 올라가도록 함 => V -= A & ans = 1남은 날들은 낮 - 밤 값을 V 로 나누고
https://www.acmicpc.net/problem/4949입력받은 문자열은 오른쪽 끝만 strip() 해주기"." 이면 종료 설정나머지는 stack 을 이용해서 괄호가 올바른지 확인여는 괄호면 append닫는 괄호면 stack 의 top 값과 매치되는지
https://www.acmicpc.net/problem/7568(x, y) 의 형태로 people 에 모두 저장이중 for 문으로 모든 사람끼리 비교해서i 의 덩치가 더 크면 ranki + 1j 의 덩치가 더 크면 rankj + 1비교할 수 없으면 그냥 지나
https://www.acmicpc.net/problem/9012열린 괄호는 stack 에 저장하고닫힌 괄호는 stack 에 값이 있으면 popstack 에 값이 없는데 닫힌 괄호가 들어왔거나 열린 괄호만 남을 경우 NO 출력https://www.ac
https://www.acmicpc.net/problem/10250YYXX 의 형태에서 YY 가 우선으로 증가한다는 점을 이용1 ~ H 까지의 숫자가 계속 반복되므로 최종적인 YY 는 N % H 층XX 는 H 가 반복된 횟수와 관련있음 => N // H + 1
https://www.acmicpc.net/problem/10773stack 을 이용해서 계속 append 하다가 0 이면 pop 하도록 함stack 의 합 printhttps://www.acmicpc.net/problem/7662min-heap 과
https://www.acmicpc.net/problem/10814(가입순서, 나이, 이름) 의 형태로 member 에 저장정렬할 때 나이 -> 가입순서 순으로 정렬하도록 함https://www.acmicpc.net/problem/9019A 와 B 가
https://www.acmicpc.net/problem/24473 \* 3 기본 모양을 기준으로 분할정복 이용arr 리스트에 우선 \* 로 채워두고재귀를 돌면서 가운데 부분만 빈칸으로 지워줌3 분의 1 로 나눈 값을 가지고 9 개의 구역으로 나눠서 재귀 돌리
https://www.acmicpc.net/problem/10816N, card, M, nums 를 모두 입력받고상근이 카드의 count 를 구해서nums 의 숫자들을 하나씩 보며 count 값 printhttps://www.acmicpc.net/pr
https://www.acmicpc.net/problem/10828stack 을 하나 만들고문제 고대로 조건에 따라 구분push : appendpop : 가능하다면 pop, 아니면 -1size : stack 의 크기empty : 스택이 비어있는지 아닌지 여부t
https://www.acmicpc.net/problem/10845deque 를 이용해서 queue 를 만들고주어진 명령에 따라 각자 역할 수행pop 할 때는 popleft 를 이용하고front 는 0 번째, back 은 -1 번째를 출력했다.https
https://www.acmicpc.net/problem/10866문제 고대로 deque 에 맞는 메소드 사용해서 풀이https://www.acmicpc.net/problem/10026painting 에 입력받은 그림의 정보를 모두 저장이중 for 문
https://www.acmicpc.net/problem/10989nums 라는 딕셔너리를 이용해서 입력받은 숫자들의 개수를 저장nums 의 key 를 기준으로 정렬 후 개수 만큼 printN 의 범위가 10,000 보다 작거나 같은 자연수라고 주어졌으므로처음
https://www.acmicpc.net/problem/11050이항 계수 수식 이용n! 을 구한 후, k! 과 (n-k)! 으로 나누는 것보다는n (n-1) ... \* (n-k+1) 을 구하고 k! 으로 나누는 게반복문도 3 개에서 2 개로 줄고 더
https://www.acmicpc.net/problem/11650입력받은 좌표들을 sort() 의 lambda 식을 이용x 좌표 -> y 좌표 의 우선순위로 정렬https://www.acmicpc.net/problem/11286최대힙을 저장하듯이 (
https://www.acmicpc.net/problem/11651입력받은 좌표들을 y 좌표 -> x 좌표 순으로 기준을 잡고 정렬https://www.acmicpc.net/problem/11399N = 5 이고 \[P1, P2, P3, P4, P5]
11866. 요세푸스 문제 0 - C++ https://www.acmicpc.net/problem/11866 내 풀이 - 성공 원형큐를 생각하며 Linked List를 사용했다. 이 때, 노드들은 메모리풀을 이용해서 만들었다. createNode) 단순 노드 생성
https://www.acmicpc.net/problem/15829여기서 중요한 것은 MOD 이다.1 <= L <= 5 의 범위인 SMALL(50점) 까지는 크게 신경 쓰지 않아도 통과 가능하지만1 <= L <= 50 의 범위인 Large
18111. 마인크래프트 - C++ https://www.acmicpc.net/problem/18111 내 풀이 - 11724. 연결 요소의 개수 - C++ https://www.acmicpc.net/problem/11724 내 풀이 -
11726. 2×n 타일링 https://www.acmicpc.net/problem/11726 Brute Force - 시간초과 직접 2 * n의 직사각형을 만들어서 1 * 2, 2 * 1 직사각형으로 직접 채워보기 -> 역시나 시간초과였다. 다음 방법으로 생각한
https://www.acmicpc.net/problem/14500N, M 이 500 이하기 때문에 Brute Force 로 충분히 풀 수 있었다.모든 숫자마다 연속된 4 개의 숫자들의 합 중 최댓값을 확인하도록 했다.핵심은 ㅗ, ㅜ, ㅓ, ㅏ 처럼 가운데에
https://www.acmicpc.net/problem/17219파이썬의 딕셔너리를 이용해 풀었다이 때, 주의해야할 점!stdin.readline() 은 입력값의 개행문자까지 가져오기 때문에 strip() 이 필요하다ex) 입력값: acmicpc.net /
https://www.acmicpc.net/problem/176261 ~ N 까지의 숫자들마다 최소 개수의 제곱수 합을 구해줘서 dp 에 저장이 때, 최대 4 개의 제곱수로 이루어지기 때문에 최대 개수 m 은 4 로 초기화각 숫자들의 루트 값부터 1 까지 (역
https://www.acmicpc.net/problem/3036비교 기준인 첫번째링과 나머지 링들 사이의 최대공약수를 구하는 것이 핵심이다최대공약수(gcd)를 구하는 정석적인 방법이 생각나지 않아서 비교 대상인 숫자부터 역순으로 확인했다,,최대공약수(gcd)