Intro 알고리즘 평가 요소: 실행 시간 메모리 사용 문제 풀이 시간 (시간복잡도) 정확도 예외 처리 능력
이 게시글은 이 레포지토리를 공부하며 작성했습니다.
Dynamic Programming: 문제를 하위 문제로 나뉘어 푼 다음 그 결과를 바탕으로 문제 해결(예) 피보나치 수열 솔루션 Fib(n) = Fib(n-1) + Fib(n-2)같은 값을 여러번 계산fib(0)과 fib(1)의 호출 횟수를 합하면 fib(n)시간,
나는야 욕심쟁이!미래를 생각하지 않고 각 단계에서 가장 최선의 선택을 하는 기법 = 지역적으로는 최적의 선택이지만 최종적으로는 최적의 선택이라는 보장이 없음탐욕스런 선택 조건 (Greedy choice property): 앞의 선택이 이후의 선택에 영향을 주지 않는다최
이 게시글은 이 레포지토리를 공부하며 작성했습니다.First in, Last out: 처음 들어간 것이 가장 마지막으로 나온다삽입과 삭제가 같은 구간에서 일어난다용도:이전에 활용한 데이터에 대한 역추적나중에 들어온 데이터가 빨리 나갈 때구현:LifoQueue 구현체Li
n은 10진법으로 변환할 문자열값,b는 N진법의 N
O(V + E)V: number of verticesE: number of edgescount connected componentsdetermine connectivityfind bridges/articulation pointsDFS goes through the gr
입력 받기 리스트로 입력 받기 연산 Floor division zip 활용하기 collections import하기 단어 내 글자의 가장 높은 frequency 찾기 itertools import하기 2차원 배열을 1차원 배열로 flatten하기 n
수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로
그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다.첫째 줄
N×M크기의 배열로 표현되는 미로가 있다.미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오.
<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이
재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를
일주일 안에 다 풀어볼 목표라 코드가 더러운건 ..ㅎㅎ다음 달에 A가 선물을 받게 될지의 기준은 딱 두가지다 B가 준 선물보다 B에게 준 선물이 더 많은지 (이 경우 받은 역사는 필요 없음)(1)에서 동점이라면 (서로 안 준 경우 포함) 선물 지수가 높은지그래서 2차
크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다.예를
조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다.ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA조이스틱을 각 방향으로 움직이면 아래와 같습니다.예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다.만들고자 하는 이름 n
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있을 때 컴퓨터 A와 컴퓨터 C도 간접적으로 연결되어 정보를 교환할 수 있습니다.
n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 1, 1, 1, 1, 1로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.사용할 수 있는 숫자가 담긴 배열 numbers, 타겟
ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다.지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의
두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.예를 들어 begin이 "hit", target가 "cog", words가 "hot"
주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다.항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요.모든 공항은 알
2D array에서 정렬 글자 n개 쓰기 String -> int Sorting arrays & array lists Initialize list of size n with same value ArrayList to Array 10진법 -> 2진법 Chec
낚시앱에서 사용하는 FISH_INFO 테이블은 잡은 물고기들의 정보를 담고 있습니다. FISH_INFO 테이블의 구조는 다음과 같으며 ID, FISH_TYPE, LENGTH, TIME은 각각 잡은 물고기의 ID, 물고기의 종류(숫자), 잡은 물고기의 길이(cm), 물고
\+1은 필요 없을 수도 있지만문제에 따라서 필요한 경우가 많음YEAR(date) => date 중 연도만MONTH(date) => date 중 month만(예) YEAR(date) = 2021Y를 소문자로 쓰면 2022 중 22만 보존한다ROUND(AVG(<컬럼
도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프들이 있습니다. 이 그래프들은 1개 이상의 정점과, 정점들을 연결하는 단방향 간선으로 이루어져 있습니다.1\. 도넛 모양 그래프크기가 n인 도넛 모양 그래프는 n개의 정점과 n개의 간선이 있습니다. 도넛 모양 그래
7569 토마토 문제를 틀린 이유는, 모든 토마토가 익는데 걸리는 최소 시간이 아닌, 가능 시간을 사용했기 때문이다이를 해결하기 위해서는 큐에 모든 익은 토마토의 좌표를 가장 먼저 더해야 한다그러면 각 익은 토마토에서부터 익음(?)이 뻗어나가는 최소 거리를 얻을 수 있
홀수 N 길이의 수식이 주어진다수식에 괄호를 넣어 만들 수 있는 최댓값을 구하라괄호 중첩은 불가하다 (괄호 안에 괄호 불가)괄호 안에 연산자는 단 하나만 들어간다모든 가능 구역에 괄호를 사용해 봐야 수식으로 가능한 최댓값을 알 수 있기 때문에 완전탐색 문제라고 판단한다
맥주 마시면서 걸어가기 #9205 문제 이해 50미터에 맥주 1병 소모 박스는 최대 20병 가능 집에서 갈 수 있는 곳은 편의점이나 페스티벌. 편의점에 가면 맥주 20병 채울 수 있고, 페스티벌 가면 성공이니까 매번 움직일 수 있는 거리는 20*50=1000 해결
그리드 크기: N시작점위치: (0, 0) 뱀의 길이: 1탐색 종료 시점 2가지(1) x 또는 y 좌표가 그리드를 벗어날 때x < 0 또는 y < 0 또는 x >= N 또는 y >= N(2) 뱀이 자기 자신의 몸과 부딪힐 때탐색 방법 2가지(1) 사과가 없는
골드3N x M 크기의 그리드에 통과할 수 있는 공간 (0)과 통과할 수 없는 벽(1)이 주어진다(0,0)에서 (N-1, M-1)까지 이동하는 최단거리를 구한다단, 벽은 최대 하나까지 부수고 이동할 수 있다큐에 추가될 Node 클래스를 정의한다. Node 클래스는 다음
실버37 <= K <= 1000가 주어진다K가 소수 3개의 합인지, 합이라면 소수 3개를 출력한다답은 여러 개일 수 있지만, 오름차순으로 정렬해야 한다이 과정을 테스트케이스 T개에 대해 반복한다.숫자 N에 대해서, 2부터 N\*\*(1/2)까지의 숫자로 중
골드35x5의 그리드로 주어지는 25개 글자에 대해7개로 구성된 조합을 만드는데7개의 글자는 연결되어 있어야 한다S가 일곱 글자 중 4개 이상이어야 한다제약 조건을 만족시키는 모든 조합의 수를 출력한다입력의 크기가 무조건 25로 고정되어 있기 때문에 시간복잡도 면에서
알고리즘에서 재귀적으로 구현할 수 있는 순열은 O(N!)이라는 어마어마한 시간복잡도를 가진다. N이 10을 넘어가면 순열을 사용할 수 있을지 다시 한번 고민해봐야 한다.전체 순열을 구할 필요 없이, 현재 순열의 다음 순서인 순열만 필요하다면 Next Permutatio
각 비트는 각기 다른 상태를 나타낸다 & 비트를 확인하는 연산자
D4N x N 그리드가 주어진다1 <= N <= 300그리드의 셀에는 지뢰가 있을 수 있다지뢰가 있으면 '\*'지뢰가 없으면 '.'지뢰가 없는 셀에는 주변 8칸 중 지뢰가 몇 개 있는지 표시할 수 있다주변에 지뢰가 없어서 0으로 표시되는 셀은 (새로운 클릭
D4N x M의 그리드가 주어진다1 <= N, M <= 1000셀은 'W' 물 또는 'L'이다각 땅 셀에서 물 셀로의 최소 거리를 구하여라모든 물 셀에서부터 땅 셀까지의 거리를 구하면 각 땅 셀에서 물 셀까지의 거리를 구한 것과 마찬가지죠.각 땅 셀에서부터
배낭 문제 각기 다른 가치 V를 지닌 N개의 물건이 있을 때, 배낭에 넣을 수 있는 최대 무게 W 이하로 최대 가치를 찾는 것이 정석적인 배낭 문제다. 가능한 모든 조합 2^N개를 확인하여 최대 가치를 확인할 수 있겠지만, N의 최댓값에 따라 시간 초과가 날 가능성
높이 12, 너비 6의 그리드셀은 '.' (빈공간), 또는 색깔 'R', 'G', 'B', 'P', 'Y'로 주어진다같은 색의 셀이 4개 이상 상하좌우 연결되면 빈공간이 된다한 차례에서 4개 이상 연결된 동일 색상 셀이 모두 처리되면 색상이 있는 모든 셀을 모두 수직
물고기 종류 별로 가장 큰 물고기의 ID(ID), 물고기 이름(FISH_NAME), 길이(LENGTH)를 출력하는 SQL 문을 작성해주세요.FISH_INFO 테이블: ID, FISH_TYPE, LENGTH, TIMEFISH_NAME_INFO 테이블: FISH_TYPE,
골드4스카이라인 쉬운거 JAVA 코드건물 높이의 윤곽을 보고 건물의 최소 수를 알아내는 문제다. 건물 높이는 윤곽만 보이기 때문에 중복 높이는 같은 건물이라고 볼 수도 있다. 단, 중복 높이 사이에 그 높이보다 낮은 높이의 윤곽이 존재한다면, 두 개의 건물로 나뉜다고
실버2K개의 랜선을 잘라서 N개의 같은 길이의 랜선을 만든다1 <= K <= 100001 <= N <= 1,000,000K <= NN개의 같은 길이의 랜선을 만들 수 있는 최대 길이를 구하라최소 길이는 1이고, 최대 길이는 랜선의 최대 길이다
퍼즐 게임 챌린지 [프로그래머스] Level 2 문제 이해 n개의 퍼즐을 제한 시간 limit 내에 풀어야 함 각 퍼즐의 난이도는 diffs[i] 내 숙련도 level이 diffs[i]보다 크거나 같으면 times[i]만에 바로 품 level < diffs[i]
골드5타겟 채널 N이 주어진다 (0 <= N <= 500000)선택지는 0~9 숫자 또는 + (채널 + 1), - (채널 - 1)M개의 고장난 채널이 주어진다시작 채널은 100이다. 최소 이동으로 N으로 이동해라ans 변수를 가장 단순한, 100부터 하나씩