
우선 이 글은 백준이라는 사이트를 사용해보고 개인적으로 "이 사이트들을 처음 이용해보는 사람들은 이런 것들은 알았으면 좋겠다"라는 생각으로 적게 된 글입니다.

들어가며 백준을 푸는 사람이라면 많은 사람들이 같이 쓰는 서비스가 솔브드이다. 여러 편리한 기능을 제공해줘서 백준 문제를 푸는 재미를 더해주지만 기능에만 집중하다가 알고리즘 공부에 소홀히 하는 주객전도가 일어나지 않도록 조심해야한다... solved.ac란? solv

이 문제는 백준 단계별로 풀어보기에서 집합과 맵에 속한 3번째 문제이다.회사의 출입 로그를 통해 회사에 있는 모든 사람을 출력하는 문제 입력 : '출입 기록의 수 n''이름' 'enter or leave' 형식으로 n번 반복출력 : '회사에 있는 사람의 이름' 을 역순

문제 요약 >문제 요약 가로수가 심어져 있는 상태에서 가로수를 최대한 적게 심으면서 모든 가로수가 같은 간격이 되도록 심으려면 몇 그루를 심어야 하는가? 입력 첫째줄 : 심어진 가로수의 수 2 ~ N+1번째 줄 : 심어진 가로수의 위치 (오름차순) 출력 새로 심어야

문제 요약골드바흐 파티션의 개수를 찾는 문제이다.골드바흐 파티션 : 짝수 N을 두 소수의 합으로 나타내는 표현입력첫째줄 : Testcase 수2 ~ T+1번째 줄 : 각 Testcase출력각 Testcase의 골드바흐 파티션 수여러 Testcase의 짝수의 모든 골드바

문제 요약정수를 저장하는 스택을 구현하고, 5가지 명령을 구현해라입력첫째 줄 : 명령의 수둘째 줄 ~ N+1번째 줄 : 각 명령출력명령의 결과스택을 class로 구현한 뒤 입력에 맞게 조건문을 설정하여 입력에 따라 명령을 실행하도록 구현한다.명령에서 1(put)의 경우

문제 요약한 명씩만 설 수 있는 공간 (스택)을 활용하여 순서가 뒤죽박죽인 대기열을 순서대로 간식 받는 곳에 들여보낼 수 있을까?단, 대기열에서 스택으로 갈 수 있지만 반대는 불가능하다.입력첫째 줄 : 학생 수둘째 줄 : 대기열의 뒤죽박죽인 순서출력순서를 원래대로 바꿀

문제 요약단어를 입력 받고1 단어 빈도수2 단어의 길이3 사전 순으로 단어장에 정렬하시오입력첫째 줄 : 단어 개수 (최대 10만), 외울 단어 길이 기준둘째 줄 ~ N+1째 줄 : 외울 단어출력단어장의 맨 앞부터 출력입력받은 단어들의 문자열과 빈도수를 저장하고 그 저장

문제 요약최소 힙을 사용하여 다음 연산을 만족하는 프로그램을 작성하라1 배열에 자연수를 넣는다2 자연수 대신 0을 입력하면 배열에 가장 작은 값을 출력하고 제거한다(만약 배열이 비었을 때 0을 입력하면 0을 출력한다)입력첫째 줄 : 입력할 수의 개수둘째 줄 ~ N+1째

문제 요약수빈이의 수에서 동생의 수로 가기 위해 1초가 걸리는 3가지 행동이 있다.1\. 현재 수에서 -1을 한다2\. 현재 수에서 +1을 한다3\. 현재 수에서 x2를 한다수빈이의 수에서 동생의 수까지 갈 수 있는 가장 빠른 시간이 몇 초 후인지 구하시오.입력N K

문제 요약1번부터 N번까지 N개의 풍선이 원형으로 놓여있다.1번 풍선부터 적혀있는 수대로 이동하여 순차적으로 풍선을 터뜨린다.단, 터진풍선은 순서에서 제외된다.양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 때는 왼쪽으로 이동한다.입력N (1 <= N &

문제 요약 정사각형 모양의 지도에 집들의 배치가 있다.좌우, 위아래로 연결된 집의 모임을 단지라고 한다.단지가 몇개인지 출력하고, 각 단지의 집의 수를 오름차순으로 정렬하여 출력하라입력지도의 크기 N그 다음 N줄에 지도의 자료(0or1)이 입력출력총 단지수 출력각 단지
컴퓨터가 이진수 표현을 쓰는 것을 이용하여 bit를 자료구조로 사용하는 기법거의 모든 연산이 O(1)의 시간복잡도를 가진다.a & ba와 b 양쪽의 각 비트를 비교하여 모두 1이면 1, 아니면 0으로 계산a | ba와 b 양쪽의 각 비트를 비교하여 하나라도 1이면 1,

문제 요약최장 공통 부분 수열(LCS)를 찾는 문제두 수열의 부분 수열 중 가장 긴 것을 찾아야 한다.입력두 문자열을 2개 줄로 입력받는다 (최대 1000글자)출력두 문자열의 LCS의 길이첫째 수열<1>의 각 알파벳들을 순서대로 둘째 수열<2>의 모든 알파벳

서론알고리즘브루트포스백트래킹다이나믹 프로그래밍누적 합그리디 알고리즘이분 탐색투 포인터LCSDFS, BFS다익스트라플로이드 워셜벨만 포드결론레퍼런스지난 자료구조에 이어 여러 알고리즘을 요약해보면서 공부를 해보려고 한다.이번에는 알고리즘의 대략적인 설명과 판단기준, 예시

백트래킹이란?가지치기(Pruning)백트래킹 vs DFS백트래킹이 사용되는 대표적인 문제N-Queen 문제N과 M뒤로 돌아간다는 뜻이다.그러니까 해를 찾는 도중에 해가 아니라면 뒤로 돌아가서 다시 해를 찾아가는 기법을 뜻한다.백트래킹은 완전 탐색(브루투포스) 기법 중

서론Gap CheckGap Check 결과추천 챕터코딩 환경그 외 장점이렇게 좋은데 왜 고민이라는 걸까결론레퍼런스예전에 본인의 알고리즘 실력을 평가 받을 수 있는 사이트에서 자가 진단을 한 기억이 있었다.알고리즘을 공부해야 하는데 뭔가 체계적이었던 그 사이트가 떠올라

N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.정사각형의 윗 꼭지점 기준 크기가 최소 2인 관계만

볼록 다각형이 있고, 여기서 3개의 연속된 점을 선택해서 삼각형을 만든다. 그 다음, 만든 삼각형을 다각형에서 제외한다. 원래 다각형이 N개의 점이 있었다면, 이제 N-1개의 점으로 구성된 볼록 다각형이 된다. 위의 과정은 남은 다각형이 삼각형이 될 때까지 반복한다.볼

BOJ 1487 - 물건 팔기세준이는 오랜 연구기간 끝에 신상품을 내놓았다. 세준이는 오랜 시간이 걸린 만큼 이 상품을 최대 이익에 팔려고 한다.세준이는 이 상품을 사려고 하는 사람들이 총 몇 명이나 되는지 알아봤다. 무려 N명이나 살 의향을 보였다. 각각의 사람은 자

BOJ 1213 - 팰린드롬 만들기임한수와 임문빈은 서로 사랑하는 사이이다.임한수는 세상에서 팰린드롬인 문자열을 너무 좋아하기 때문에, 둘의 백일을 기념해서 임문빈은 팰린드롬을 선물해주려고 한다.임문빈은 임한수의 영어 이름으로 팰린드롬을 만들려고 하는데, 임한수의 영어

https://www.acmicpc.net/problem/2885학교 근처 편의점에 새 초콜릿이 들어왔다. 이 초콜릿은 막대 모양이고, 각 막대는 정사각형 N개로 이루어져 있다. 초콜릿의 크기(정사각형의 개수)는 항상 2의 제곱 형태이다. 즉, 1, 2, 4,

DFS, BFS다익스트라벨만-포드플로이드-워셜기타 등등이 있지만 일단 간략하게 이 4가지 알고리즘에 대한 문제들과 왜 이 알고리즘으로 풀어야 하는지에 대해 공부해보도록 하겠다.이미 이 글에서 작성한 내용에서 문제 풀이를 추가하는 방식으로 작성하겠다.📌 DFS한 방향을

DFS, BFS다익스트라벨만-포드플로이드-워셜기타 등등이 있지만 일단 간략하게 이 4가지 알고리즘에 대한 문제들과 왜 이 알고리즘으로 풀어야 하는지에 대해 공부해보도록 하겠다.이미 이 글에서 작성한 내용에서 문제 풀이를 추가하는 방식으로 작성하겠다.📌 DFS한 방향을
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의
프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.예를 들어, 주어진 정수가 6, 10, 2라면 6102, 6210, 1062, 1026, 2610, 2106를 만들 수 있고, 이중 가장 큰 수는 6210입니다.0 또는 양

명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니

image.png💡 가중치가 있는 그래프에서 특정 노드에서 다른 모든 노드까지의 최단 경로를 구하는 알고리즘이다.음의 가중치가 없는 그래프에서만 작동한다.초기화, 시작노드 선택인접 노드 거리 갱신가장 가까운 노드 선택2, 3번을 반복하면서 큐에 남은 노드가 없을 때까
이전에 구현에 대해 글을 작성해본 적이 있다.https://velog.io/@yorangs/Python-알고리즘-구현구현/시뮬레이션 문제는 문제 많이 풀어보고 구현을 직접해보는 것이 포인트이다.유튜브에서 해당 영상을 참고하면서 공부하고 글을 작성하게 되었다.h