이번 문제들은 풀었다기보다 공부했다고 봐도 무방하다.이유는 3가지 모두 같은 문제이지만 다른 방법으로 푸는 문제였기 때문이다.첫번째 문제를 제외하고는 구글 교수님과 차근차근 배워가는 시간을 가졌다.시간복잡도의 중요성을 알 수 있는 문제들이었다.2750번) 수 정렬하기
한 달 넘게 공부를 멈췄다. 이유는 개인 프로젝트를 엎어야 했기 때문이다.한 두 달 혼자 열심히 만들던 프로젝트를 한번에 엎는 일은 그렇게 쉬운 일이 아니었다.그렇게 한 달을 쉬고... 다시 알고리즘 공부를 시작한다.여유가 있으면 프로젝트를 다시 작업할 생각이지만, s
7568번) 덩치이번 문제는 키와 몸무게를 연관지어서 등수를 매기는 것이다.키가 작아도 몸무게가 더 나간다면 둘은 같은 등수를 가질 수 밖에 없다.그렇다면 키와 몸무게 모두 작다면 순위가 밀리게 된다.따라서 arr확인할 index < arr순환할 index을 조건
오늘은 한 문제만 간단하게(?) 풀이하겠다.2231번) 분해합이 문제를 꽤 오랜시간 고민한 이유가 있다.주어진 N과 그에 맞는 생성자를 찾는 과정에서 자릿수마다 하나씩 숫자를 고르려고 생각을 했기 때문이다.예를 들어, 123이 생성자이면 1, 2, 3 따로따로 찾으려고
오늘은 대망의 하노이탑 문제를 포스팅하겠다.11729번) 하노이탑하노이탑 문제는 자료구조 시간에 잠깐 다뤄본 적이 있었다.그 당시에 본 재귀 문제중에 가장 어려운 문제였고, 실제로 코드를 이해하기는 커녕 규칙도 이해 못하고 넘어갔었다.이번엔 내 것으로 만들겠다는 다짐으
오늘 포스팅할 내용은 '재귀'에 대한 알고리즘이다.수업에서 들었을 때는 너무 어려워서 대충 훑고 지나갔는데이번에 본격적으로 이해하려니 그때의 내가 너무 원망스러웠다.10872번) 팩토리얼재귀의 핵심은 끝맺음이라 할 수 있다.반복이 멈추는 지점을 염두해두고 꼭 코딩해야
오늘은 한 문제만 포스팅해야겠다.1002번) 터렛이 문제는 각각 x,y 좌표를 가진 두 원의 접점을 찾는 문제이다.문제를 풀기 위해 조건을 생각해 보자.1) 같은 좌표, 같은 거리일때x, y좌표가 같고 r값 모두 같다면 같은 원이다.이 경우에 접점은 무한이므로 -1이다
오늘은 기하학과 관련된 문제들이다.세 문제 모두 간단하게 풀 수 있는 문제들이었다.1085번) 직사각형에서 탈출주어진 좌표로 이루어진 직사각형 안의 x,y 좌표가 직사각형을 빠져나가는 최단거리를 묻는 문제이다.1사분면 위에 있는 좌표들을 다루는 문제이기 때문에 x축 좌
오늘 문제들도 모두 소수와 관련된 문제들이다.대부분 에라토스테네스의 체를 이용하여 풀었고 큰 어려움은 없었다.4번은 건너뛰고 5,6번을 설명하겠다.4948번) 베르트랑 공준문제 이름만 보고 겁나 어렵나보다...했었는데 별거 아니더라.자연수 n이 주어졌을 때, n보다 크
이번 문제들은 수업에서 자주 썼던 알고리즘들이다.하지만 기억이 안나서 좀 걸렸다...더 열심히 공부를 안한 나를 원망했다.1978번) 소수찾기, 2581번) 소수두 문제 모두 소수를 이용한 문제이다.여기서 소수는 1과 자기 자신만을 나눌 수 있는 자연수이다. '2,3,
백만년만의 포스팅이다.추석에 펑펑 놀고 다시 공부하려니 정말 싫어서 질질 끌었다...문제도 이 파트(기본수학 1) 마지막 문제라서 그런지 어려웠다. 저어어엉말 하기 싫을 정도로...ㅎㅎㅎ오늘은 기존에 다시 풀어야 했던 문제 + 1011번을 포스팅 하겠다.1712번) 손
백준은 코드와 설명만 포스팅 할 예정이다.N번째 손님의 방번호를 구하는 문제이다.H를 층, W를 방 개수라 가정하여 총 (H\*W)개의 방이 있는 호텔이다.손님의 방번호를 매기는 조건은 다음과 같다.호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작
큰 수 A+B첫줄에 입력된 두 숫자를 더하는 문제이다.'큰 수'이기 때문에 +연산자로 간단하게 더할 수 있는 문제는 아니다.과거에 학교 수업에서 해본 경험이 있기 때문에 기억을 살려서 풀었다. (이게 왜 난이도가 브론즈 5지...)풀이 전략은 이러하다.첫번째와 두번째,
폰켓몬문제홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 3번, 1번, 2번, 3번이라면 이는 3번 폰켓몬 두 마리,
이번 문제는 꽤 오래 고민했다. 아니 고민했다기 보다 손을 대기가 쉽지 않았다.지난번에 배웠던 배열 정렬을 잘 활용해야 이 문제가 풀릴 것 같았기 때문이다.2108번) 통계학최빈값을 제외하고는 어렵지 않은 문제이다. 다만, 중앙값과 범위를 쉽게 구하기 위해 Collec
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수
콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가?단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다.계산 후 나머지가 생기면 다음 계산에 포함하는 식으로 접근하였다.(현재 가진 병 = 받은 병
이 프로그램에서는 매일 "명예의 전당"의 최하위 점수를 발표합니다. 예를 들어, k = 3이고, 7일 동안 진행된 가수의 점수가 10, 100, 20, 150, 1, 100, 200이라면, 명예의 전당에서 발표된 점수는 아래의 그림과 같이 10, 10, 10, 20,
원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.한 번 사용한 카드는 다시 사용할 수 없습니다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.문자열로 이루어진 배열 cards1, cards2와 원
이번엔 문제가 너무 길어 적지 않겠다.실행 시간 때문에 애를 먹었다. 약수 구하는 문제는 예전에 풀어봤었는데 너무 오랜만이라 푸는 방법을 까먹었다.처음엔 연산을 반으로 줄이려고 Math.floor(i/2)를 했었는데 그래도 5만번 반복하는 것은 무리였나보다.결국 찾아본
문제를 찍어 맞추는 세명의 학생들 중 주어진 문제를 얼마나 많이 맞추는지 확인하는 문제이다.풀이 방법 및 단계는 이러하다.학생 각각의 패턴 분석 : 패턴을 분석해서 배열로 저장문제마다 맞춘 값을 정답 배열에 추가 : (패턴의 현재 숫자 = 문제 번 수(0부터) % 학생
이번 문제는 section의 배열을 순회하면서 선택한 요소가 m이라는 범위 안에 있는지 확인하는 문제이다.풀이 방식은 이러하다.i번째 section에 롤러 첫부분(왼쪽)을 고정시킨다.j를 사용하여 section을 순회하면서 j가 i+m범위 안에 있는지 확인한다.있으면
LeetCode가 자료구조 및 알고리즘 공부에 좋아보여서 병행하기로 했다.오늘은 DFS에 대한 문제를 풀어보았다.DFS(깊이 우선 탐색)는 그래프나 트리 구조에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 모든 조건을 탐색할 때 사용하며, BFS(넓이 우선 탐색)와
연결 리스트 관련 문제를 풀다가 우선순위 큐를 접하게 되었다.해당 문제는 k개의 서로 다른 노드 개수를 가진 연결 리스트들을 모두 오름차순 순으로 정렬하는 문제이다.나는 단순하게 연결 리스트를 순회하면서 하나씩 병합하고자 했다.k가 최대 10^4개까지 가능하기 때문에
오늘은 가볍게 연결 리스트에 대한 문제 하나를 풀었다.인접 노드들을 쌍으로 스왑하는 문제이다.아래의 예시에서 간단하게 설명한다.Input: head = 1,2,3,4Output: 2,1,4,3하나만 남거나 비어있는 종료 조건의 경우 예외 처리는 어렵지 않았다. 다만,
요새 문제 풀고 포스팅을 안했는데, 간만에 여유가 생겨 포스팅을 해보고자 한다.문제 설명을 요약하자면, DB 조회 시에 대량의 데이터를 효율적으로 가져오기 위해 필요한 캐시 알고리즘을 구현했을 때, 캐시 크기에 대한 실행시간을 구하는 문제이다.이때, 캐시가 가득 찼을