Implement Stack using Implement a last-in-first-out (LIFO) stack using only two queues. The implemented stack should support all the functions of a no
Implement Queue using Stacks저번 큐를 이용한 스택 구현과 마찬가지로 파이썬의 deque를 이용해 구현하였다. 스택이다 보니 값을 한 쪽 방향에서만 넣고 뺄 수 있기 때문에 이에 맞게 appendleft와 popleft 함수를 사용해 구현했다.
현재의 온도보다 미래의 온도가 더 높아지려면 며칠 남았는지 계산하는 문제이다.(날이 따뜻해지기만을 바라는 나같다..)처음에 이중 포인터를 사용해서 풀이 했다가 시간 초과 에러가 발생하였다. 풀이 설명: 포인터는 현재의 값 바로 다음 값을 가리키도록 초기화한다. (포인터
이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면
N개의 정수 A1, A2, …, AN이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.예제 입력54 1 5 2 3 51 3 7 9 5첫번째 줄에는 그 다음 줄에서 입력받을 배열의 크기를 입력받고 그 다음줄에 배열 A를 입력받는다.세번
Longest Substring Without Repeating Characters링크텍스트말그대로 중복 문자가 없는 가장 긴 부분 문자열을 구하는 문제이다.쉬워보였지만 나한테는 오래 걸렸던 문제이다..ㅠ포기하지 말고 끝까지 천천히 생각해보기
링크텍스트stones 안에 jewels가 있는지 확인하는 문제참고로 예시 입력에서의 jewels "aA"는 "a"따로, "A"따로 보석이라고 보면 된다.stones 문자열 안의 문자가(돌) jewels 안에 있는 문자(보석)인지 확인한 후 있으면 카운트를 증가시키면 된
링크텍스트 고심해서 풀었으나 다른 답안을 찾아본 뒤 힘이 빠진 문제 먼저 내가 처음에 푼 풀이
링크텍스트메모장에서 해당 사이트를 찾아 그 사이트의 비밀번호를 출력하는 문제이다.
링크텍스트이게 왜 오래 걸리나 싶은데 오래 걸렸다..파이썬 함수 활용이 미흡하다는 것을 느꼈다.단어 리스트가 주어졌을 때, 같은 알파벳으로 이루어진 단어들을 묶어 반환해야 한다.문제를 푸는 방식은 맞았지만 이를 구현하는 데 있어서 오류가 많이 났다. 설명: strs에
처음에 쓰리포인터(?)를 활용해서 문제를 풀었는데 기본 주어진 테스트 케이스는 통과했지만 나머지 테스트 케이스에서 통과하지 못했다. 근데 그 실패한 코드를 짜는 데에도 엄청 오래 걸렸다.아무튼 나에게 어려운 문제라고 느껴져서 다른 분들이 풀어놓은 정답 코드를 참고하여
Maximum Product of Two Elements in an Array링크텍스트배열 중 가장 큰 2개의 숫자를 골라 각각 1을 뺀 값을 반환(numsi-1)\*(numsj-1)파이썬의 heapq를 사용한다.파이썬에서의 힙은 최소힙이기 때문에 이에 -1를 곱해서
The K Weakest Rows in a Matrix주어진 배열의 각각의 row에서 1의 개수가 가장 적은 순서대로 인덱스 k개를 출력하는 문제이다. 출력 시, i번째 row보다 j번째 row가 더 먼저 와야 한다. (i < j)먼저 내가 풀었던 방법. \*la
Kth Largest Element in an Array링크텍스트
링크텍스트널리 잘 알려진 자료구조 중 최소 힙이 있다. 최소 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오.배열에 자연수 x를 넣는다.배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다.프로그램은 처음에 비어있는 배열에서 시작하게 된다.0
링크텍스트 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된
3Sum링크텍스트합해서 0이 되는 세 개의 수로 이루어진 배열을 반환하는 문제이다. 항해 첫날 문제였는데 너무 어려웠다.파이썬도 거의 처음 접해보는 것이나 마찬가지였다.준비되지 않은 나에게 노홍철처럼 다가온 문제.. 그래서 다시 정리한다.투포인터를 이용해서 푸는 문제이
Array Partition링크텍스트Given an integer array nums of 2n integers, group these integers into n pairs (a1, b1), (a2, b2), ..., (an, bn) such that the sum
링크텍스트스택의 원리를 사용한 간단한 문제이다.괄호 () 의 짝이 맞는지를 확인해서 맞으면 "YES", 틀리면 "NO"를 순서대로 출력한다.
Reverse Linked List연결 리스트의 head가 주어졌을 때, 리스트의 역순 연결 리스트를 반환하는 문제.연결 리스트의 개념은 알고 있으나, 구현하기 쉽지 않았다. 코드 이해를 하기가 너무 어려웠다.먼저 이전 노드를 저장할 prev를 선언해준다.모든 헤드를
두 정렬 리스트를 오름차순으로 병합하는 문제이다.
Odd Even Linked List링크텍스트홀수번째 노드들을 앞에 위치시키고, 짝수번째 노드들을 그 뒤에 위치시킨 리스트를 만드는 문제이다.
링크텍스트비밀번호 창에서 입력한 키가 주어졌을 때, 비밀번호를 알아내는 프로그램을 작성하시오. 키보드로 입력한 키는 알파벳 대문자, 소문자, 숫자, 백스페이스, 화살표이다.오늘의 자료구조 주제는 Linked List이지만 스택이 먼저 떠올라 스택으로 구현하였다.::-1
링크텍스트터널에 들어간 차들이 순서대로 주어지고, 터널에서 나오는 차들이 순서대로 주어질 때, 터널 안에서 추월을 했을 차들의 수를 구하는 문제이다.터널에 들어간 차(번호판) 순서ZG508OKPU305ARI604BZG206AZG232ZF터널에서 나오는 차(번호판) 순서
링크텍스트처음에 괄호 사이들의 문장의 알파벳 요소가 존재한다면 반드시 하나를 스택에 넣어줘야 한다고 생각해서(왜 그랬는지 잘 모르겠다.) 살짝 헤맸는데 그냥 괄호짝만 확인하면 되는 문제였다.
링크텍스트1번 컴퓨터가 웜 바이러스에 걸렸을 때, 1번 컴퓨터를 통해 웜 바이러스에 걸리게 되는 컴퓨터의 수를 첫째 줄에 출력한다.입력은 이렇게 주어진다.1 22 31 55 25 64 7그림으로 나타내면 다음과 같다.그림으로 그려서 생각하면 쉬운데 코드를 짜려니 어떤
수강해야 하는 강의 수와 전제 조건 리스트가 주어졌을 때, 모든 강의를 수강할 수 있는 상태인지 알아보는 문제이다.전제 조건이란, 예를 들어 0, 1 로 표시되어 있다면강의 0을 수강하기 위해서는 반드시 강의 1을 수강해야 함을 의미한다.예를 들어, 2개의 강의를 들어
수강해야 하는 강의 수와 전제 조건 리스트가 주어졌을 때, 모든 강의를 수강할 수 있는 상태인지 알아보는 문제이다.전제 조건이란, 예를 들어 0, 1 로 표시되어 있다면강의 0을 수강하기 위해서는 반드시 강의 1을 수강해야 함을 의미한다.예를 들어, 2개의 강의를 들어
주어진 문자들로 조합 가능한 암호들을 출력하는 프로그램을 만드는 문제이다.이 문제는 파이썬의 itertools 라이브러리를 사용하여 쉽게 해결할 수 있다.itertools 라이브러리의 combinations 함수를 사용하여 가능한 조합들을 만들면 되는데, 이때 조건을
트리가 주어졌을 때, 트리 안의 가장 긴 path를 구하는 문제이다. 트리를 탐색하여 맨 아래 리프 노드까지 내려간 후, 각각의 부모 노드로 거슬러 올라가면서 상태값(트리의 리프 노드에서 현재 노드까지의 거리)을 업데이트 해가면 된다.
주어진 트리가 Balanced Binary Tree(height-balanced)인지 확인하는 문제이다.
모든 행성을 연결했을 때, 최소 플로우의 관리비용을 출력하는 문제이다.즉, 트리의 모든 노드를 연결했을 때, 간선들의 가중치의 합이 최소가 되는 가중치를 구하는 문제이다.결국 최소 신장 트리의 가중치의 합을 구하면 되고 이는 프림 알고리즘이나 크루스칼 알고리즘을 적용해
마을을 두 개의 분리된 마을로 분할하고(각 마을에는 1개 이상의 집이 있어야 함) 분리된 두 마을 안에서의 길의 유지비의 합은 최소화한다. 이때 유지비가 얼마인지 구하는 문제이다.결국 최소 신장 트리를 구하고 이 안에서의 가중치의 합을 구하면 된다.프림 알고리즘을 통해
링크텍스트
링크텍스트
링크텍스트코딩 테스트 2번 문제였고 풀지 못하였다.NxN 그래프가 주어졌을 때, 구역의 개수를 세는 문제이다.단, 적록 색약이 아닌 사람이 그래프를 봤을 때와, 적록 색약인 사람이 그래프를 봤을 때 각각 구역의 개수가 몇개로 보이는 지 다르기 때문에 이를 차례로 출력하
링크텍스트전화번호 목록이 주어졌을 때, 이 목록이 일관성이 있는지를 구하는 문제이다.전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없어야 한다.예를 들어, 전화번호 목록이 아래와 같은 경우를 생각해보자긴급전화: 911상근: 97 625 9
링크텍스트어려웠다.....처음에 문제 이해도 잘 못했다..아무튼 문제는 선생님한테는 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 참고로, 수업이 끝난 직후에 다음 수업을 시작할 수 있다. (즉, T
링크텍스트다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발해야 한다. 즉, 어떤 지원자 A의 성적이 다른 어떤 지원자 B의 성적에 비해 서류 심사 결과와 면접 성적이 모두 떨어진다면 A는 결코 선발
링크텍스트문제: 편의를 위해 고속도로는 평면상의 직선이라고 가정하고, 센서들은 이 직선 위의 한 기점인 원점으로부터의 정수 거리의 위치에 놓여 있다고 하자. 따라서, 각 센서의 좌표는 정수 하나로 표현된다. 이 상황에서 각 집중국의 수신 가능영역의 거리의 합의 최솟값을
Two Sum II - Input Array Is Sorted링크텍스트인풋으로 들어온 numbers 배열 중 더해서 target 값이 되는 두 요소를 찾는 문제이다.투포인터를 이용해서 풀었다.배열의 처음을 가리키는 start 포인터와 배열의 끝을 가리키는 end 포인터
링크텍스트정해진 총액 이하에서 가능한 한 최대의 총 예산을 배정하는 문제이다.조건은 다음과 같다.1\. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정한다.2\. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는
링크텍스트목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것
링크텍스트이미 가지고 있는 랜선의 개수 K개를 일정 길이만큼 잘라서, 필요한 같은 크기의 랜선 N개를 만들어야 하는데, 이 때 만들 수 있는 최대 랜선의 길이를 구하는 문제이다.문제는 달라 보이지만 이해하고 나면 결국 같은 이진 탐색 활용 문제이다.start 포인터를
Climbing Stairs링크텍스트맨 위로 올라가기 위해 오를 수 있는 방법의 수를 세는 문제이다.한번 올라갈 때마다 1칸 또는 2칸을 오를 수 있다.예를 들어 n=3 이면, 3칸을 올라가기 위해 총 세 가지의 방법이 존재한다.1칸 + 1칸 + 1칸1칸 + 2칸2칸
Maximum Subarray링크텍스트nums 배열에서 배열의 합이 최대가 되는 서브 배열의 합을 구하는 문제이다. 이때, 서브 배열은 배열 안에서 연속된 요소로 이루어져야 한다.nums = -2,1,-3,4,-1,2,1,-5,4 일 경우,배열의 합이 최대가 되는 서브
House Robber링크텍스트도둑이 인접한 집은 건들지 않고 털 수 있는 최대의 돈을 구하는 문제이다.예를 들어, 2, 7, 9, 3, 1 배열(집)이 주어졌을 때(집1,집2,...집5),도둑이 최대로 털 수 있는 금액은 집1(2원) + 집3(9원) + 집5(1원)