단순히 주어진 숫자가 짝수면 나누기 2, 홀수면 -1을 하여주어진 숫자가 0이 될때까지 몇 번할 수 있는지 세면 된다.
0부터 n까지 연속된 자연수가 들어 있는 벡터에특정 숫자 하나가 들어 있지 않고 그 수를 찾아야 함한가지 생각할 건 만약 벡터가 0, 1이라면 2가 빠진 것을 계산해야 함속도가 빠른 다른 답안을 보니 xor을 사용하여 속도를 높임
문자열 s에 '0'과 '1'로 이루어진 k 길이로 만들 수 있는 모든 문자열이 포함되어 있는지 검사하는 문제처음에는 중복 순열을 모두 구하여 해당 값이 s에 포함되어 있나 검사했는데 시간 초과가 떴다.
주어진 행렬을 main diagonal 기준으로 뒤집는 문제
정수 행렬과 사각형의 좌상단, 우하단 두 점이 주어 진다.행렬 내에서 사각형 영역의 합을 구하는 문제
두 연결 리스트에서 같은 주소를 가지는 노드를 구하는 문제처음에는 동일한 숫자를 가지기 시작하는 노드를 구하는 문제인줄 알았다.한발 더 나아가서 O(m + n) 시간과 O(1) 메모리 사용을 하여 풀어보라고 한다.
두 벡터를 정렬된 하나의 벡터로 만드는 문제두 벡터에서 몇 개의 숫자를 가지고 올지는 각각 m, n으로 준다.
처음에는 문자열에서 회문이 몇개인지 찾는 문제로 알았다.문자열에서 subsequence를 뽑아올 때 문자열의 연속성을 무시해도 된다...처음 주어진 문자열이 회문이면 한번에 전부 지울 수 있고,회문이 아닐 때는 a만, 혹은 b만 subsequence로 추출하고 지우면
n x n 체스판에 서로 공격하지 못 하는 n개의 퀸을 놓는 문제
정수 트리가 주어지고 루트부터 가장 마지막 리프 노드 까지 합쳤을 때가장 작은 합을 구하는 문제triangle을 안건드리려고 했지만, 속도를 높이려면 triangle에 sum 값을 넣어야 할 듯
두 문자열을 같게 만들려고 할 때, 한 단계에 하나의 문자열에서 한 문자를 지운다.이 때 최소로 필요한 단계를 구하는 문제이다.두 문자열에서 가장 긴 subsequnce를 구하고 두 문자와의 길이 차를 구하면 된다.
문자열 벡터를 받고 문자열끼리 체인을 이루는 집합 중 가장 큰 크기를 구하면 된다.문자의 체인은 문자열의 순서를 바꾸지 않고, 문자열에 하나의 문자를 추가해서 문자열 벡터에 있는 문자가 될 때를 말한다.
바이너리 트리가 주어지고 특정 노드에 부모 노드, 자기 자신, 자식을 커버하는 카메라를 설치한다고 한다.바이너리 트리를 모두 커버할 때 카메라의 최소 개수를 구하는 문제이다.노드의 val 값은 모두 0이라고 주어져 해당 값의 수정을 통해 조건을 체크 했다.
단어 사전을 만드는데 접두사와 접미사로 검색할 수 있도록 해야 한다.
주어진 문자열들을 한 줄로 쭉 이어 붙인다. 문자열과 문자열 사이는 '특정 문자열이 다른 문자열과 같거나, 포함되어 있을 때 특정 문자열과 '이렇게 모든 중복 문자를 지웠을 때 문자열의 길이를 구하는 문제이다.
빌딩들의 높이 벡터와 사용할 수 있는 벽돌과 사다리의 개수가 주어진다.현재 빌딩보다 다음 빌딩이 높을 경우 벽돌과 사다리를 사용해야 하는데,벽돌은 두 빌딩 높이의 차이만큼 사용해야하고,사다리는 높이와 관계없이 하나를 사용한다.위 조건에서 빌딩을 몇 개 넘어갈 수 있는지
주어진 int 배열에서 k번째로 큰 수를 구하는 문제
주어진 십진수의 수를 1과 0으로만 이루어진 수로 더해서 만들 때최소로 몇번 더해서 만들 수 있는지 구하는 문제이다.
문자열이 주어질 때 문자들의 빈도수를 고유하게 해야한다.고유하지 않은 빈도수의 문자는 하나씩 삭제하여 빈도수를 낮출 수 있다.문자마다 고유 빈도수로 만들때 삭제를 최소로 반복한 수를 구하는 문제이다.
주어진 벡터를 데이터대로 정렬하는 문제이다.데이터에는 사람의 키와 앞에 자신의 키보다 같거나 큰 사람이 몇명 있는지 쓰여있다.벡터를 데이터가 만족하도록 정렬하면 된다.
정수형 벡터를 받고 정수 데이터는 1씩 증가시키거나 감소시킬 수 있다.증가나 감소 때마다 1단계가 지났다고 판정한다.벡터의 데이터들을 모두 같은 수로 맞출 때 가장 낮은 단계를 구하는 문제이다.
박스 정보가 담긴 벡터와 트럭의 크기를 받는다.박스 정보에는 사용할 수 있는 박스의 개수와 Unit이라는 일종의 점수가 있다.트럭 크기 1당 박스 1개를 실을 수 있을 때, Unit의 최대값을 구하는 문제이다.
정수형 벡터 데이터에서 연속되는(1 차이) 숫자들의 가장 긴 길이를 구하면 된다.그리고 그 때 알고리즘은 오직 O(n)의 시간복잡도를 가져야 한다는 제한 사항이 있다.
정수형 데이터가 남긴 바이너리 트리의 루트 노드를 받고,트리의 깊이마다 트리의 가장 오른쪽 데이터를 벡터에 담아내는 문제이다.
성냥의 길이가 담긴 벡터를 받고 해당 성냥들을 한번씩 사용하여정사각형을 만들 수 있는지 판단하는 문제
단순히 트리를 BFS 방식으로 순회하여 레벨별로 노드의 값들을 벡터로 넣으면 되는 문제이다.
트리를 preorder 순서와, inorder 순서로 순회한 결과 벡터들을 받고,해당 데이터들로 트리 구조를 파악하여 트리를 만드는 문제이다.preorder는 root가 가장 먼저(pre) => root, left, rightinorder는 root가 중간(in) =>
이미지 출처삼각형의 열이 몇개인지 주어진다.주어진 열까지 삼각형이 담고있는 정수 정보를 벡터로 만들어 반환하는 문제이다.
문자열 s와 문자열들이 담긴 벡터를 받는데,벡터 내의 문자열들이 s의 Subsequence로 만들 수 있다면몇 개의 문자열이 Subsequence를 만족하는지 구하는 문제이다이진탐색을 하지 않을 시 시간 초과가 떴다.
링크드 리스트와 특정 정수 값이 주어진다.해당 값을 기준으로 더 작은 값들과 같거나 큰 값들로 링크드 리스트를 분류해야 한다.이미지 출처분류 된 리스트 내의 순서는 기존의 링크드 리스트의 순서를 따라야 한다
정렬된 정수형 벡터와 찾으려는 정수 하나가 주어진다.찾으려는 정수의 첫번째 인덱스와 마지막 인덱스를 찾는 문제이다.해당 정수가 벡터에 없다면 첫번째와 마지막 인덱스를 -1로 반환
트리의 root와 p, q 트리 노드를 받는다.p와 q의 공통 조상인 트리 노드를 찾는 문제이다.
바이너리 트리의 루트를 받는다.문제는 이 트리를 right만을 사용하는 링크드 리스트처럼 바꾸는 것이다.이미지 출처
두 문자열 s와 t를 받는다.t가 s의 아나그램인지 아닌지 판별하는 문제
문자열 하나와 문자열이 담긴 벡터를 받는다.해당 문자열의 패턴을 파악하여 벡터 내에 같은 패턴을 가진 문자열들을 반환해야 한다.패턴은 문자 순서와 문자열 내의 문자 개수로 파악할 수 있다.
m, n 크기의 맵이 있고 로봇은 좌측 상단(0, 0), 도착점은 우측 하단(m - 1, n - 1)이다.로봇은 우측 방향과 아래 방향으로만 움직일 수 있다.로봇이 도착점으로 가는 방법의 수를 구하는 문제이다.
트리가 주어지고 트리를 순회하며 트리의 값들을 괄호로 묶어 스트링으로 반환하는 문제트리가 널일 경우 괄호를 생략해도 되는데,이 때 왼쪽 자식 트리는 널인데 오른쪽 자식 트리는 값이 존재할 경우는 괄호를 생략하면 안된다.
정수형 데이터가 담긴 벡터가 주어지고 임의의 수 k가 주어진다.데이터들마다 인덱스가 k 만큼 차이나는 수 중에 중복된 수가 있는지 체크하는 문제if there are two distinct indices i and j in the array such that numsi
문자열이 담긴 벡터 데이터를 받는데, 이 문자열들을 조합하여 가장 긴 문자열의 길이를 구하는 문제이다.단 문자열에 조건이 있는데 알파벳은 중복되어 사용되면 안 된다.
0보다 큰 정수만 담긴 벡터와 1보다 큰 정수 k를 받고해당 정수들의 합으로 k의 배수를 만들 수 있는지 체크 하는 문제(sum_j - sum_i) % k = 0 => sum_j % k - sum % k = 0 => sum_j % k = sum_i % k Thus fo
0과 1로 이루어진 벡터 두개를 받고 1번 벡터 데이터를 상하좌우로 이동했을 때,2번 벡터와 가장 많이 중복되는 데이터를 구하는 문제이다.다른 사람들은 빠른 속도를 내기위해서 비트 연산을 사용
0 ~ 99 사이의 수가 담긴 2차원 벡터 행렬을 받고,해당 행렬이 Toeplitz를 만족하는지 true, false를 반환하는 문제이다.Toeplitz는 모든 대각선들이 각각 대각선마다 같은 수를 가지고 있는 행렬이라고 한다.A matrix is Toeplitz if
두 글자로 된 문자열들을 받고 해당 문자열들을 조합하여가장 긴 Palindrome 문자열의 길이를 구하는 문제
문자열 하나를 받고 해당 문자열에서 모음들만의 순서를 거꾸로 하는 문자열을 만드는 문제
6과 9로만 이루어져 있는 정수를 하나 받고그 중 하나의 숫자만 6과 9를 뒤집어 가장 큰 수를 찾는 문제
대문자 소문자가 섞인 문자열 하나를 받고 이 문자열을 문제에서 말하는 좋은 문자열로 바꾸는 문제이다.좋은 문자열의 조건은 아래와 같다A good string is a string which doesn't have two adjacent characters si and
날마다의 주식 가격이 적힌 벡터 데이터를 받고,날자별 가격이 며칠 연속 최고가 인지 계산하는 문제다른 사람들 하는 걸보니 스택을 사용하여 푸는 것이 정석 같다.
문자열 데이터를 하나 받고 해당 문자열에서 연속된 알파벳 문자들을 지우는 문제
오름차순으로 정수가 담긴 벡터를 받는데 여기서 중복되는 숫자들을 지우는 문제그리고 주어진 벡터 이외의 추가적인 메모리를 사용하는 자료구조를 사용하지 말라는 조건이 있다.
완전 이진 트리의 노드수를 구하는 문제아래의 조건을 만족해야 한다.Design an algorithm that runs in less than O(n) time complexity.
두 사각형의 왼쪽 하단과 오른쪽 상단 점의 x, y 좌표를 받고두 사각형의 전체 면적을 구하는 문제
정수 데이터 하나를 받고 해당 수가 ugly인지 아닌지 판단하는 문제An ugly number is a positive integer whose prime factors are limited to 2, 3, and 5.소수가 2,3,5로만 제한되어 있는 0보다 큰 정수
'+'와 '.'으로 이루어진 2차원 벡터와 시작 지점이 담긴 벡터를 받는다.'+'는 갈 수 없는 벽을 나타내며, '.'은 이동할 수 있는 지점을 의미한다.그리고 시작 지점으로부터 상하좌우 1칸씩 이동할 수 있으며,시작 지점에서 시작하여 2차원 벡터의 가장자리까지 가는
1보다 큰 정수 n이 주어지는데 이 때 n을 perfect square들로 만들 때 최소 개수를 구하는 문제perfect square는 정수의 제곱 수들을 말한다.A perfect square is an integer that is the square of an int
9x9 크기의 "1~9"와 "." 문자가 담긴 2차원 벡터를 받는다. "."은 빈칸을 나타낸다.해당 스도쿠 보드가 아래 3개의 조건을 만족하는지 체크하는 문제
알파벳이 하나씩 써진 2차원 벡터와 찾아야하는 문자열 하나를 받는다.2차원 보드에서 문자열 중 하나의 문자와 다음 문자는 인접(상하좌우)하고 있어야 한다.또한 하나의 문자 칸은 두 번이상 사용될 수 없다.
O(1)의 속도로 저장, 삭제 및 랜덤한 데이터를 가져올 수 있는 set을 만드는 문제
정수형 데이터가 담긴 벡터에서 수들의 빈도수가 유니크한지 판단하는 문제
문자열 데이터가 하나 주어지는데 해당 데이터의 앞쪽 반과 뒤쪽 반이 Alike인지 구분하는 문제Alike는 모음의 총 수가 같을 경우를 말한다.Two strings are alike if they have the same number of vowels ('a', 'e'
두 문자열 데이터를 받고 해당 데이터들이 Close인지 아닌지 판단하는 문제Operation 1: Swap any two existing characters.For example, abcde -> aecdbOperation 2: Transform every occurr
정수들이 담긴 벡터를 받고,벡터에서 특정 두 구간에서의 평균 차이가 가장 작을 때 인덱스를 구하는 문제두 구간의 조건은 아래와 같다The average difference of the index i is the absolute difference between the
링크드 리스트의 헤드 노드를 받고 해당 리스트에서 절반의 시작 노드를 구하는 문제
링크드 리스트의 헤드 포인터를 받고 해당리스트의 홀수번째 노드들과 짝수번째 노드들을 나누고,홀수 번째 노드 리스트 뒤에 짝수번째 노드 리스트들이 있도록 재구축하는 문제You must solve the problem in O(1) extra space complexity
바이너리 트리의 루트 노드와 최저값과 최대값을 받는다.트리에서 해당 최저값 이상, 최대값 이하를 만족하는 값들의 합을 구하는 문제
두 바이너리 트리의 루트 노드를 받고 두 트리에서 리프 노드들의 값과 순서가 같은지 판단하는 문제
바이너리 트리 루트 노드를 받고, 조상 노드와 자손 노드 간의 가장 큰 값 차를 구하는 문제
계단을 오를 때 한 번에 1칸 혹은 2칸을 선택하여 올라갈 수 있다.이 때 정수 n이 주어지고 n칸까지 올라 갈때 가능한 방법 수를 구하는 문제
정수형 2차원 벡터를 받고 해당 벡터의 첫 행에서 시작하여 마지막 행으로 한 행씩 이동한다.또한 다음 행으로 넘어갈 때 같은 열뿐만이 아닌 인접한 앞 뒤 열로 이동이 가능하다.이 때 지나온 정수 값들 합하면서 이동하고 마지막 행에 도착할 때 최소 값을 구하는 문제
0 이상의 정수가 담긴 벡터를 받고, 특정 조건을 만족하는 최대 값을 구하는 문제벡터 내의 정수들을 더해나갈 수 있는데 한 정수를 선택하여 더하면,해당 정수의 앞뒤로 인접한 정수들은 선택하여 더할 수 없다는 것이 조건이다.
두 문자열에서 가장 긴 subsequence의 길이를 구하는 문제
제목 그대로 stack을 사용하여 queue를 구현하는 문제단순히 두 개의 stack을 사용하는 방법이 아닌1개만 사용하는 방법이 있을까하여 생각해봤는데방법이 떠오르지 않아 다른 사람이 한 걸 참고하였다.
숫자들과 사칙 연산 기호가 담긴 문자열 벡터를 받는다.이 때 데이터들은 Reverse Polish Notation 방식으로 담겨져 있는데이를 계산하여 값을 구하는 문제
정수들이 담긴 벡터를 받고,벡터의 내의 각각의 숫자가 순서대로 진행될 때 몇번 연속 최대 값인지를 구하는 문제단 아직 해당 값보다 더 큰 값이 나오지 않은 경우는 0으로 계산
정수형 2차원 벡터를 받게 되는데첫번째 축은 방으로 생각하고, 두번째 축에는 방의 키들이 있다고 가정이 때 0번째 방은 키가 없어도 들어갈 수 있는데,0번째 방부터 시작하여 모든 방을 순회할 수 있으면 true 아니면 false를 반환하는 문제
n 명이 있을 때 사람들을 2개의 그룹으로 나눌 수 있는지 판단하는 문제여기서 조건이 있는데 같은 그룹으로 묶을 수 없는 사람들이 들어 있는 2차원 벡터를 받는다.
정수형 벡터를 받는데 이 데이터는 현재 인덱스에서 다음 인덱스까지 넘어갈 수 있는 최대값이다.0번째 인덱스에서 시작하여 마지막 인덱스까지 갈 수 있는지 판단하는 문제
두 정수형 데이터가 담긴 벡터와 정수 하나를 받는다.두 벡터에는 인덱스마다 바위를 채울 수 있는 최대량과 현재 바위의 양이 적혀있고,정수 하나는 바위를 채워 넣을 수 있는 예비 바위의 수를 뜻한다.문제는 이 예비 바위들을 사용하여 주머니마다 최대량으로 꽉차도록 바위를
인덱스 주머니에 담긴 돌의 양을 나타내는 정수형 벡터와특정한 처리를 할 수 있는 횟수를 나타내는 k를 받는다.처리란 특정 인덱스의 담긴 돌의 양을 반으로 하고 반올림한 숫자로 만드는 것그 처리를 k번 반복하여 최소로 만들 수 있는 돌의 양을 구하는 문제
2차원 정수 벡터를 받는데 두번째 축의 첫번째 아이템은 queue에 task가 들어오는 시간이적혀있고, 두번째 아이템은 task를 처리하는 시간이 적혀있다.문제는 cpu가 특정 인덱스의 task를 몇번째 순서로 처리하는지 구하여 반환해야 한다.cpu는 한 번에 하나의
노드마다 0 ~ n-1의 값을 가지는 directed acyclic graph (DAG)를 2차원 벡터로 받는다.0번 노드에서 시작하여 n-1번 노드로 가는 모든 방법을 구하는 문제
맵을 의미하는 2차원 정수형 벡터 데이터를 받는다.입구는 1, 출구는 2, 이동 불가능한 위치는 -1, 나머지는 0으로 표시될 때,입구에서 시작하여 이동 불가능 칸을 제외한 모든 칸을 한번씩만 밟고출구로 나오는 경로의 개수를 구하는 문제
문자열 데이터를 받고 해당 문자열이 아래의 세 조건 중 하나를 만족하는지 판단하는 문제
소문자 알파벳으로 이루어진 같은 길이의 문자열이 담긴 벡터를 받는다.0번째 인덱스의 문자열을 시작으로 아래쪽 방향으로 세로로 줄세웠을 때문자열들의 열들 중 정렬되지 않은 열이 몇 개인지 판단하는 문제
task의 어려움 정도(레벨)들이 들어있는 정수형 벡터를 받는다모든 task를 수행할 때 걸리는 가장 적은 라운드 수를 구하는 문제이 때 조건이 있는데, 한 라운드에 무조건 같은 레벨의 2개 혹은 3개의 임무를 수행할 수 있다모든 임무를 수행할 수 없는 경우 -1을 반
가로 방향으로 긴 풍선 시작점과 끝점들이 담긴 2차원 정수형 벡터를 받는다이 때 화살을 세로 방향으로 쏴서 모든 풍선을 터뜨릴 때,화살을 가장 적게 쏘는 횟수를 구하는 문제
아이스크림들의 가격들이 담긴 정수형 벡터와 사용할 수 있는 코인의 개수를 받는다.가장 많은 아이스크림을 살 때 아이스크림의 개수를 구하는 문제
두 정수형 벡터를 받게 되는데,벡터에는 인덱스 기준 가스 스테이션에서 차에 채울 수 있는 가스량과다음 가스 스테이션까지 필요한 가스량이 적혀 있다.특정 가스 스테이션에서 시작하여 다시 시작 지점까지 돌아갈 수 있는지 판단하는 문제돌아갈 수 없다면 -1을 반환하고 돌아갈
트리의 root 노드를 받고 preoder 순으로 트리를 방문하며,방문한 노드들의 값을 순서대로 저장한 벡터를 반환하는 문제
두 개의 트리 root 노드를 받고 트리의 모양과 값이 같은지 판단하는 문제
노드의 개수 n, 노드 간의 엣지들이 담긴 2차원 정수형 벡터, 인덱스 기준 노드가 사과를 가지고 있는지의 유무가 담긴 불리언 벡터를 받는다.노드에서 인접한 노드(노드 간의 엣지가 존재하는)로 이동하는데 1초가 걸릴 때,0번 노드에서 시작하여 모든 사과를 모으고 0번
트리 노드 개수 n과 노드 간의 연결이 담긴 2차원 정수 벡터, 그리고 노드 인덱스 기준으로 노드별 레이블(알파벳 문자 하나)을 써놓은 문자열 하나를 받는다.문제는 노드마다 자기 자신을 포함하여 자신과 같은 레이블을 가진 자식 노드들을 찾고,몇 개인지 파악하여 정수형
문자열 3개를 받는다.인덱스를 기준으로 s1과 s2는 동일한 문자들로 가정한다.For example, if s1 = "abc" and s2 = "cde", then we have 'a' == 'c', 'b' == 'd', and 'c' == 'e'.그리고 동일한 문자들
시작점과 끝점이 담긴 2차원 정수형 벡터와 시작점과 끝점이 담긴 정수 벡터 하나를 받는다.문제는 2차원 벡터에 새로운 구간을 적용하여 넣어 계산된 구간을 반환하는 것이다.새로운 구간이 이미 존재하는 구간들과 겹칠 경우 이를 계산하여,구간을 늘리고 병합하는 작업을 해야한
정수형 벡터를 하나 받는데 이 벡터의 데이터들을 사용하여무조건 이전 인덱스의 데이터보다 크거나 같은 수로 Subsequence들을 만들어 반환하는 문제
자연수로만 이루어진 문자열 s를 받는다.이 문자열에서 유효한 IP 주소가 될 수 있는 것들을 추려내서 반환해야 한다.유효한 IP 주소의 조건은 아래와 같다
마을의 인원수 n과 인덱스 기준으로 $A_i, B_i$와 같이 이루어진 2차원 정수형 벡터를 받는다.이 데이터는 $A_i$는 $B_i$를 믿는다는 뜻이며, 문제는 Town Judge를 찾아 인덱스를 반환해야 한다.Town Judge의 조건은 다른 모든 사람들이 믿는 사
정사각형 보드를 나타내는 2차원 정수 벡터 board를 받는다.보드에는 가장 좌측 하단을 1로 시작하여 행의 극단으로 갈 수록 1씩 증가하는 인덱스가 매겨져 있다.또한 행의 끝에 도달하면 동일한 열의 상위 행으로 올라가며 인덱스가 매겨진다.가장 좌측 하단에서 시작하여
인덱스를 기준으로 단방향 그래프들의 간선을 의미하는 정수 벡터 edges와특정 인덱스 두 개 node1과 node2를 받는다.문제는 두 노드들이 모두 도달할 수 있는 노드들 중 node1과 node2에서 더 먼 거리를 기준으로가장 작은 거리를 가지는 노드의 인덱스를 반
정수들을 하나씩 입력 받으면 데이터들을 통하여 연속되는 구간들을 2차원 벡터로 만들어 번환할 수 있는 자료 구조를 구현하는 문제
목표로 하는 정수 n을 받고 n번째 tribonacci number를 구하는 문제
인덱스를 기준으로 i번째 사람의 나이와 점수를 뜻하는 정수형 벡터 두 개를 받는다.그리고 팀을 꾸리기 위하여 사람을 뽑는데, 나이가 많은 사람이 무조건 나이가 적은 사람보다 점수가 높아야 한다는 조건이 있다.문제는 조건을 만족하는 팀을 꾸려 팀 인원들의 점수를 합했을
두 개의 문자열 str1과 str2를 받는데,문제는 두 문자열이 공통적으로 가지며 반복되는 문자열 중 가장 긴 문자열을 구하는 것이다.
소문자 알파벳으로 이루어진 단어들이 담긴 문자 벡터와 일반적인 알파벳 순서가 아닌 다른 순서를 알려주는 order 문자열을 받는다.문제는 벡터 내의 단어 순서가 order 순서로 정렬되어 있는지 판단하는 것이다.
문자열 s와 행의 수 numRows를 받는다.문자열 s를 numRows 행의 지그재그 패턴으로 만들 때,위에서부터 행방향으로 읽은 문자열을 만들어 반환하는 문제이다.예를 들어 ABCDEFGHI이라는 문자열을 받고 3행 지그재그 패턴으로 만들면 아래와 같고이를 위에서부터
섞어여할 정수들이 들어있는 nums 벡터와 이 벡터 크기의 반 n이 주어진다.nums의 앞 부분 반과 뒷 부분 반을 순서대로 나열한 벡터를 만들어 반환하는 문제
인덱스를 기준으로 뛰어넘을 수 있는 거리가 적힌 nums 정수형 벡터를 받는다.0번째 인덱스에서 시작하여 마지막 인덱스까지 점프를 할 때, 최소 점프수를 구하는 문제
정수형 2차원 벡터인 grid를 받는다. 물을 뜻하는 0과 땅을 뜻하는 1로 이루어져있는데맨하탄 거리 |x0 - x1| + |y0 - y1|를 기준으로 물에서 땅까지 가장 멀 때 거리를 구하는 문제
그래프의 노드 개수 n과 빨간 선 redEdges, 파란 선 blueEdges 벡터들을 받는다빨간, 파란 선 벡터에는 시작점과 도착점이 벡터로 들어있으며,문제는 인덱스를 기준으로 0번째부터 n - 1번째까지 몇 번만에 갈 수 있는지 구하는 것인데,이전에 빨간 선을 통해
매개변수로 양방향 그래프의 간선을 나타내는 roads 벡터와 차량의 좌석 수 seats를 받는다.인덱스를 기준으로 도시 노드들이 존재하고 0번 노드는 수도이다.차량은 한 도시에서 근접한 도시로 이동할 때 기름을 1씩 소모하며,모든 도시에서 한명씩 수도까지 차량을 타고
정수 low와 high가 주어지는데 low 이상, high 이하의 홀수 개수를 구하는 문제
이진수로 이루어진 문자열 a와 b를 받고, 이진수를 더하여 이진수 문자열로 반환하는 문제
10진수가 자리수마다 나뉘어있는 정수형 벡터 num과 이 벡터에 더할 값 k가 주어진다.num에 k를 더한 후 똑같이 10진수로 자리수마다 나뉜 정수형 벡터를 구하여 반환하는 문제
바이너리 서치 트리의 루트 노드가 주어지고 해당 트리의 노드 간의 차이값 중 최소값을 구하는 문제
바이너리 트리의 루트 노드를 받고 해당 트리를 순회하며 노드의 값들을 2차원 벡터로 depth에 따라 지그재그 순서로 모아 반환해야 한다.
오름차순으로 정렬된 정수형 벡터에서 target 정수가 존재한다면 인덱스를 반환하고,없다면 오름차순을 유지하며 target을 추가할 수 있는 인덱스를 반환하는 문제
정렬된 정수형 벡터를 하나 받는데, 해당 벡터는 단 하나의 숫자를 제외하고 모두 두 개씩 존재한다.여기서 단 하나만 존재하는 숫자를 찾는 것이 문제이며, O(log n)의 시간과 O(1) 공간을 만족 해야 한다.
투자할 수 있는 회사 수를 의미하는 정수 k,초기 투자할 수 있는 자본금을 의미하는 정수 w,인덱스를 기준으로 회사의 필요 투자금과 이익이 담긴 정수형 벡터 capital과 profits를 받는다.문제는 이익을 최대로 했을 때의 최종 자본금을 반환하는 것이다.
날짜별 가격이 적힌 정수형 벡터 prices를 받는다.한 번 사서 한 번 팔 때, 가장 큰 이득을 구하는 문제
2차원 정수 벡터를 받아 이 그리드를 해석하여 topLeft, topRight, bottomLeft, bottomRight들을 차일드로 가지는 쿼드 트리를 구축하는 문제노드에는 4개의 차일드 말고도 val과 isLeaf 불리언 값을 가지고 있는데isLeaf는 말그대로
바이너리 트리의 루트 노드를 받고 해당 트리에서구조와 값이 동일한 서브 트리들을 찾아 벡터에 넣어 반환하는 문제
정수형 벡터 nums를 받고 해당 벡터를 빌트인 함수를 사용하지 않고 정렬하는 문제
char가 담긴 벡터를 받고 char가 2번 이상 연속적으로 나타나는 만큼char가 아닌 숫자로 나타내어 string을 압축하는 문제조건으로 constant extra space만을 사용해야 한다.
문자열 haystack과 needle을 받는다.haystack에서 needle 문자열이 처음 나오는 인덱스를 반환하고,존재하지 않을 시 -1을 반환해야 하는 문제
정수형 벡터 arr을 받고,0번째 인덱스에서 시작하여 마지막 인덱스까지 가는데 최소 점프 수를 구하는 문제.점프는 세 가지 방법이 있다.인덱스 + 1이 벡터의 길이보다 작다면 한칸 앞으로 점프할 수 있다.인덱스 - 1이 0보다 크거나 같다면 한칸 뒤로 점프할 수 있다.
0보다 큰 정수가 담긴 벡터 arr과 정수 k를 받게 된다.벡터 arr에 숫자가 1부터 저장됐을거리 기대했을 때 없는 숫자들 중 k번째의 숫자를 찾는 문제
단일 링크드 리스트의 헤드 노드 포인터를 받고,이 리스트를 트리의 좌우 높이가 같은 바이너리 트리로 변환하는 문제
단일 링크드리스트의 포인터들이 담긴 벡터를 받는다.링크드리스트는 노드의 val을 기준으로 오름차순 정렬이 되어있다.여러 링크드리스트를 오름차순으로 정렬된 하나의 링크드리스트로 병합하여 반환하는 문제
인터넷 브라우저에서 앞서 방문한 사이트들을 앞뒤로 이동 할 수 있는 방문 기록을 구현하는 문제BrowserHistory(string homepage)void visit(string url)string back(int steps)string forward(int step
int형 벡터가 주어지고 벡터의 index로부터 갈 수 있는 다른 노드의 인덱스가 적혀있으며, 다른 노드로 이동이 불가능한 인덱스는 -1이 적혀있다.문제는 그래프를 분석하여 싸이클을 이루는 구간을 찾고 가장 긴 싸이클의 길이를 구하는 것이다.
정수가 담긴 두 벡터 spells와 potions를 받고, long long 타입 success를 받는다.spells와 potions에는 인덱스를 기준으로 하여 파워가 적혀 있을 때,각 스펠마다 potion의 파워들과 곱했을 때 success 이상의 값을 가지는 개수를
방향이 지정되지 않는 그래프의 노드 하나를 받는다.노드에는 노드값과 연결되어 있는 노드들의 벡터 데이터들이 있는데,이 데이터들을 이용해 그래프를 복사하여 복사된 그래프의 노드 하나를 반환하는 것이 문제이다.또한 노드값은 1부터 시작하며 유니크하다는 조건이 있다.
정수형 데이터가 저장되어 있는 벡터를 받는다.해당 벡터에서 최대값과 최소값을 제외한 평균을 구하는 문제
문자열 s에서 k 길이로 만들 수 있는 부분 문자열 중 문자열의 최대 모음 개수를 구하는 문제
정수형 데이터 4개를 받는데 low, high는 만들어질 문자열의 최소, 최대 길이이며,zero와 one은 "0"으로 이루어진 문자열의 길이와 "1"으로 이루어진 문자열의 길이이다zero와 one을 조합하여 low 이상 high 이하 길이를 가지는 문자열을 몇 개나 만
big, medium, small 세 종류의 차량을 세울 수 있는 주차장을 디자인하는 문제addCar 함수에서 인자로 들어온 종류의 타입 차량을 주차할 수 있는 상태인지 아닌지 판단 해야 한다