[알고리즘 & 코테] Chapter 5. 정렬
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸오늘은 지난번 살펴 보았던 DFS/BFS 그래프 탐색 파트에 이어, 네 번째 챕터로 다양한 정렬 알고리즘 개념 및 구현 방식에 대해 공부해보는 시간을 갖도록 하겠습니다!정렬정렬이란 데이터를 특정한 기준에 따라 순서대로 나열하는 것으로, 데이터를 가공할 때 보통 오름차순, 내림차순 등으로 순서대로 많이 표현하기 때문에 프로그램 작성시에 가장 많이 사용되는 알고리즘 중 하나이다. 정렬 알고리즘이 이진 탐색의 전처리 과정이니, 이를 알면 이진 탐색 역시 손쉽게 이해할 수 있다. 또한 정렬에 사용되는 다양한 알고리즘이 있지만, 책에서는 선택, 삽입, 퀵, 계수 정렬만 다룬다. 상황에 적절하지 못한 정렬 알고리즘을 구현하게 되면, 필요 이상의 시간 복잡도를 요구해 비효율성도 높아지..
[알고리즘 & 코테] Chapter 4-2. DFS/BFS 문제풀이(2)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 DFS/BFS 그래프 탐색 알고리즘의 대표 관련 문제들을 풀어보는 시간을 가졌었는데, 오늘까지 추가로 기본 문제들을 몇개 더 풀어보고, 다음 시간에는 정렬 챕터 개념으로 넘어가보도록 하겠습니다! 백준 2667(Silver 1) - 단지번호붙이기 문제 상황은 다음과 같습니다. 정사각형의 격자가 있을 때, 각 칸의 값은 집이 있을 때 1로, 없을 때 0으로 표현됩니다. 이 때 상하좌우로 집이 붙어 있는 경우 이를 단지로 정의할수 있고, 0이 어떻게 위치해있는지에 따라 격자 내에 구분된 여러 단지가 생길 수 있습니다. 이 때 단지의 개수와 단지에 속하는 집의 수를 낮은 수부터 오름차순으로 하나씩 출력해야합니다.문제 풀이 및 사고 흐름 정리이 문제에 어떤 식으로 대응해..
[알고리즘 & 코테] Chapter 4-1. DFS/BFS 문제풀이(1)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 DFS, BFS 그래프 탐색 알고리즘과 그에 필요한 자료 구조, 재귀 등에 대한 개념을 리뷰해보았었는데요, 이번 시간에는 이번 챕터의 가장 대표격이라고 할 수 있는 문제들을 한번 같이 풀어보면서 알고리즘을 코드로 변환하는 과정을 체화해볼까 합니다.백준 1260번(Silver 2) - DFS와 BFS문제 상황은 비교적 단순합니다. 정점의 개수와, 간선의 개수 및 연결 상세 정보, 시작 정점이 주어질 때, 이를 DFS와 BFS로 탐색한 결과를 각각 출력해야 하는 문제입니다. 지난 시간에 배열 형식이 아닌 진짜 말 그대로 그래프로 표현된 형식에 대해 각각의 알고리즘으로 탐색하는 방식을 배워보았는데, 복습할 겸 실제 입력에 적용해보는 시간을 가지고자 했습니다.문제 풀이..
[알고리즘 & 코테] Chapter 4. DFS/BFS
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸오늘은 지난번 살펴 보았던 구현 파트에 이어, 세 번째 챕터로 그래프 탐색 알고리즘에 해당하는 DFS/BFS 개념 및 구현에 대해 공부해보는 시간을 갖도록 하겠습니다!자료구조 기초(Stack/Queue)탐색은 많은 양의 데이터 중 원하는 데이터를 찾는 과정을 의미하고, 코딩 테스트에서는 그래프나 트리 안에서의 탐색 문제가 주로 출제된다고 합니다. 가장 대표적인 탐색 알고리즘이 바로 오늘 살펴볼 BFS와 DFS 인데, 이를 제대로 이해하기 위해서는 스택과 큐 자료 구조에 대한 이해가 선행되어야 한다고 해서, 알고리즘을 공부하기 이전 관련 자료 구조 이론들 먼저 보고 가도록 하겠습니다. 자료 구조는 데이터를 표현하고 관리하고 처리하기 위한 구조로, 대표적인 자료 구조로는 스택..
[알고리즘 & 코테] Chapter 3-2. 구현 문제풀이(2)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 구현 알고리즘(완전탐색, 시뮬레이션)의 대표 문제를 풀어보는 시간을 가졌었는데, 오늘까지 구현 유형 몇 문제를 더 풀어보면서 제 사고 흐름을 되짚어 본 뒤, 다음 시간에는 BFS/DFS 탐색 알고리즘으로 넘어가보도록 하겠습니다! 백준 15686번 - 치킨 배달 문제 상황은 다음과 같습니다. N x N 크기로 이루어진 도시가 있고, 각 좌표 위치를 (r,c)로 표현합니다. 또 각 좌표에는 0,1,2 값 중 하나가 부여되는데, 이 때 0은 빈 칸, 1은 집, 2는 치킨집을 의미합니다. 특별히 이 도시에는 치킨 거리라는 개념이 존재하는데, 이는 집을 기준으로 가장 가까운 치킨집 사이의 거리이고, 도시의 치킨 거리는 각각 모든 집의 치킨 거리의 합으로 정의됩니다. 두 ..
[알고리즘 & 코테] Chapter 3-1. 구현 문제풀이(1)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 구현 알고리즘(완전탐색, 시뮬레이션)의 주요 개념과 대표 예제들을 리뷰해보는 시간을 가졌었는데요, 오늘도 역시 지난번과 마찬가지로 백준에 구현 유형으로 분류된 문제들에 대해 가벼운 문제 풀이를 진행하고 제 사고 흐름을 되짚어 보는 시간을 가져보도록 하겠습니다! 백준 1158번(Silver 4) - 요세푸스 문제문제 상황은 다음과 같습니다. 1번부터 N번까지 N명의 사람이 원을 이루고 앉아있을 때 모든 사람이 제거 될 때 까지 반복해서 K번째 사람을 제거해나가고, 우리가 구해야 할 것은 원에서 사람들이 제거되는 순서입니다. 예시를 통해 보는 것이 이해가 빠를 것 같습니다.위의 사진에서의 예시와 같이 7명이 있을 때, 3번째 사람을 반복해서 제거해나간다고 가정합..
[알고리즘 & 코테] Chapter 3. 구현
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸오늘은 처음으로 살펴 보았던 그리디 알고리즘에 이어, 두번째 챕터로 구현 파트 개념 및 교재의 대표 예제들을 공부해보는 시간을 갖도록 하겠습니다!구현코딩 테스트에서 구현이란, 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정을 의미합니다. 특별한 알고리즘 유형에 해당하지는 않지만, 가장 단순하면서도 어려운 문제 유형에 속하는 경우가 많습니다. 보통 코딩테스트를 풀 때 풀이 자체를 머릿속으로 떠올리는 것은 쉽지만 소스코드로 옮기는 것이 어렵기 때문입니다. 따라서 문법 자체를 능숙하게 숙지하고 근본적인 코딩 실력 자체를 키우는 것이 당연한 얘기이면서도 가장 중요합니다. 구현은 매우 포괄적인 영역이긴 하나, 교재에서는 구현이 가장 핵심이 되는 두 가지 문제 유형을 다룹니다. 먼저..
[알고리즘 & 코테] Chapter 2-2. 그리디 문제풀이(2)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 그리디 알고리즘에 대한 문제 풀이 후 간단하게 리뷰해보는 시간을 가졌었는데요, 다음 개념으로 일단 넘어가기 전에 두 가지 정도의 문제를 더 리뷰해보고자 합니다. 여기서는 문제가 그리디 알고리즘과 관련 있는지를 미리 아는 상태에서 푸는 것이긴 하지만, 모든 챕터 개념 공부를 마친 후에는 무작위로 풀 것이기 때문에, 연습해보는 시간이 되겠습니다.백준 2839번(Silver 4) - 설탕 배달문제 상황은 다음과 같습니다. 설탕공장에서 사탕가게에 Nkg의 설탕을 배달하야하는데, 봉지는 3kg, 5kg 2종류이고, 이 때 가장 최소한의 봉지 개수로 Nkg을 맞출 때의 그 개수를 구해야 하는 문제입니다. 또한 두 종류의 봉지 조합으로 Nkg를 맞출 수 없다면 -1을 출력해..
[알고리즘 & 코테] Chapter 2-1. 그리디 문제풀이(1)
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸지난 시간 그리디 알고리즘의 주요 개념과 대표 문제를 리뷰해보는 시간을 가졌었는데요, 오늘은 이어서 백준으로 간단히 제가 제대로 이해했는지 알아보기 위해 비교적 가벼운 문제 풀이를 진행하고 제 사고 흐름을 되짚어 보는 시간을 가져보도록 하겠습니다! 백준 1541번(Silver 2) - 잃어버린 괄호문제 상황은 다음과 같이 매우 간단합니다. 양수, +, -, 괄호를 가지고 식을 만든 후 괄호를 지운 상황에서, 다시 괄호를 적절히 쳐서 식의 값을 최소로 만드는 로직을 짜야합니다. 그리고 입출력 형식의 경우 첫째 줄에 식이 주어지고, 예제에 대한 정답, 즉 괄호를 제대로 쳤을 때의 최소값을 출력하도록 해야합니다. 나머지 부차적인 조건들은 어쩌면 당연한 조건들이었습니다.문제 ..
[알고리즘 & 코테] Chapter 2. 그리디
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸오늘은 지난 시간 워밍업으로 진행한 파이썬 문법 리뷰에 이어, 첫번째 알고리즘으로 그리디 알고리즘 이론 및 대표 문제에 대해 공부해보는 시간을 갖도록 하겠습니다!그리디 알고리즘 그리디 알고리즘은 위의 그림처럼, 어떠한 문제가 있을 때 현재 상황을 기준으로 매 순간 지금 당장 좋아보이는 것을 선택하는 방식으로, 탐욕적인 방식을 통해 문제를 해결하는 알고리즘 입니다. 그리디 알고리즘 유형으로 나오는 코딩 테스트 문제들은 다른 알고리즘 유형과는 달리, 암기로만 풀기 어렵기에 더더욱 어려운 유형이라고 할 수도 있지만, 반대로 사전에 외우고 있지 않아도 풀 수 있다는 장점이 있는 유형이기도 합니다. 문제에서 '가장 큰 순서대로', '가장 작은 순서대로' 와 같은 명시적인 힌트를 ..
[알고리즘 & 코테] Chapter 1. 코딩테스트 정복을 위해 필요한 파이썬 문법 리뷰
·
Coding Test
안녕하세요! 개굴코드입니다. 🐸현 개발 직군 취업 시장에 대응하기 위해서는 코딩 테스트에 대한 확실한 대비가 필수라는 생각이 들었는데요.코딩 테스트 정복을 위해 알고리즘, 자료구조 공부 및 유형별 문제 풀이에 대한 내용들을 앞으로 순차적으로 기록해보고자 합니다. 이것이 취업을 위한 코딩 테스트다 with 파이썬 | 나동빈 | 한빛미디어 - 예스24나동빈 저자의 유튜브 라이브 방송 https://www.youtube.com/c/dongbinnaIT 취준생이라면 누구나 입사하고 싶은 카카오 · 삼성전자 · 네이버 · 라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다!IT 취준생www.yes24.com 저는 챕터별로 정리가 정말 잘 되어 있다고 생각해서 나동빈 저자님의 "이것이 취업을 위한 코딩 테스트다 wi..