개발 이야기/알고리즘 및 코테 준비
-
[알고리즘][개념] Selection sort, Insertion Sort, Merge Sort, Quick sort개발 이야기/알고리즘 및 코테 준비 2024. 9. 18. 22:10
정렬 알고리즘은 사실 실제로는 코테 때 나는 아직 사용해본적은 없지만 수업 1주차 때 관련 내용이 나오기도 했고, 간단히 코드와 원리, 시간복잡도에 관해 이야기해보려고 한다. 기본적으로 이 글에서는 오름차순으로 정렬된 배열이 정렬 되어있다고 할 것이다. https://hsp1116.tistory.com/33 을 참고하여 작성하였습니다.Selection Sort(선택 정렬)선택 정열은 이름 그대로 배열을 처음부터 끝까지 훑으면서 가장 작은 (또는 큰) 값을 선택하여 맨 앞자리 (또는 뒷자리)로 옮기는 방식이다. 시간 복잡도: O(n^2) (최선, 평균, 최악 모두)장점: 구현이 매우 간단합니다.단점: 시간 복잡도가 높아 큰 데이터셋에는 비효율적입니다. def selection_sort(arr): ..
-
[알고리즘][개념] DFS(깊이 우선 탐색) & BFS(너비 우선 탐색)개발 이야기/알고리즘 및 코테 준비 2024. 9. 18. 15:28
https://devuna.tistory.com/32, 튜나 개발일기를 참고하였습니다. 여러 자료구조 중 그래프를 탐색하는 방법에는 크게 깊이 우선 탐색, DFS와 너비 우선 탐색인 BFS가 존재한다. 여기서 말하는 그래프란 node와 edge로 구성된 자료구조를 말한다. 이 중 방향성이 있는 비순환 그래프를 트리라고 말한다. 이런 그래프를 탐색한다는 의미는 하나의 정점으로부터 시작하여 차례대로 모든 정점을 하나씩 방문하는 것을 의미한다. 코테 문제 중 일부는 이런 search 기법을 잘 구현해야하기에 DFS와 BFS의 개념을 알아보고 python으로 주어진 그래프를 간단히 탐색해보는 예제코드를 작성해보려고 한다. 깊이 우선 탐색(DFS, Depth-First Search): 우선 최대한 깊이 내려..
-
[Softeer][21년 재직자 대회 예선] 좌석관리개발 이야기/알고리즘 및 코테 준비 2024. 9. 9. 20:24
Level 3가 되더니 확실히 난이도가 올라갔다. 푸는데 생각보다 많은 시간이 소요된 문제였다.다만 몇몇 아이디어들은 계속해서 사용되는 형식이라 중요한 문제이다.(상하좌우 확인)문제 https://softeer.ai/practice/6267 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai현대자동차그룹에서 사내 식당 매니저로 일하는 기항이는 점심 시간에 맞춰 일을 하고 있다. 오늘 일은 사람들이 사회적 거리두기를 잘 지키면서 식당 좌석에 앉도록 상황을 관리하는 일이다.현재 식당에는 좌석 N×M개가 N행 M열로 나열되어 있는데, 각 좌석에는 (1,1)에서 (N,M)로 좌표가 배정되어 있다. x행 y열에 있는 좌석의 좌표는 (x,y)이다.점심 시간에는 많은 사람들이 식당을 드나든다. 사번..
-
[Softeer][21년 재직자 예선] 회의실 예약개발 이야기/알고리즘 및 코테 준비 2024. 9. 9. 19:44
문제https://softeer.ai/practice/6266 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai회사에는 N개의 회의실이 있다. 수많은 팀이 모여 토론하고 업무를 처리하기 위해서는 회의실이 필수적이다.내부망에 아주 간단한 회의실 예약 시스템이 있지만 편의성이 매우 떨어진다. 단순히 예약된 회의의 목록만 표시되기 때문에, 방 별로 비어 있는 시간이 언제인지를 확인하기가 힘든 것이다. 당신은 이를 직접 해결해 보기로 마음 먹었다.회의실 이용 규칙은 다음과 같다:- 회의실은 9시부터 18시까지만 사용 가능하다. 모든 회의의 시간은 이 안에 완전히 포함되어야 한다.- 회의는 정확히 한 회의실을 연속한 일정 시간 동안만 점유한다. 즉 각 회의는 (회의실, 시작 시각, 종료 시각)..
-
[Softeer][21년 재직자 대회 예선] 전광판 문제개발 이야기/알고리즘 및 코테 준비 2024. 9. 4. 22:07
문제 전광판은 최대 다섯 자리의 자연수만을 표시할 수 있도록, 아래와 같이 육각형 모양의 전구 7×5=35개로 구성되어 있다.각각의 전구에는 스위치가 달려 있다. 전구에 달려 있는 스위치를 누를 때, 그 전구가 켜져 있었다면 꺼지고, 그 전구가 꺼져 있었다면 켜진다. 지금 전광판에 자연수 A가 표시되어 있는데, 유가가 변동됨에 따라 전광판에 표시된 자연수를 B로 바꿔야 한다. 이러한 목표를 달성하기 위해 스위치를 최소 몇 번 눌러야 하는지를 구하는 프로그램을 작성하라. 제약조건하나의 입력에서 1개 이상 1000개 이하의 테스트 케이스를 해결해야 한다.A와 B는 한 자리 이상 다섯 자리 이하의 자연수이다.A와 B는 숫자 0으로 시작하지 않는다.A와 B는 서로 다르다.입력형식첫 번째 줄에 해결할 테스트 케이..
-
[Softeer][21년 재직자 대회 예선] 비밀메뉴개발 이야기/알고리즘 및 코테 준비 2024. 9. 4. 11:13
문제 회사 식당에는 전설처럼 전해 내려오는 비밀 메뉴에 대한 소문이 있다.소문의 내용은 대강 이러하다.식권 자판기의 버튼을 특정 순서대로 누르고 결제를 하면, 평소와는 다른 색깔의 식권이 나온다. 이 식권을 배식대에 제출하면, 어떤 비밀 메뉴를 받을 수 있다는 것이다.물론 이를 실제로 본 사람은 아무도 없어서, 어떤 메뉴가 나오는지는 커녕 눌러야 하는 버튼의 순서조차 알려져 있지 않다.주방장인 당신은 이 소문의 실체를 알고 있다. 이는 분명한 사실이다!정해진 버튼 조작법을 사용하면 비밀 메뉴의 식권을 얻을 수 있다. 그러나 얼마 전 식권 자판기가 고장으로 교체되면서,새 자판기에서는 비밀 메뉴 조작법이 작동하지 않게 되었다.당신은 프로그래밍 실력을 살려, 사용자의 버튼 조작 중 비밀 메뉴 조작법이 포함되어..
-
[알고리즘 실습환경 구축] 알고리즘 튜토리얼 및 개요개발 이야기/알고리즘 및 코테 준비 2024. 9. 3. 19:47
오랜만에 글을 다시 작성..!했습니다 여름간에는 잠시 랩인턴을 하느냐고 관련 주제로 논문들을 읽고 정리했었는데 학기 중에는 전공수업들을 공부하면서 얻게된 지식 + 새롭게 알게된 내용들을 위주로 작성해보려고 합니다. 이번학기를 막학기로 졸업을 준비하기 위해 여러 밀렸던 강의들을 몰아서 듣게 되었는데..! 그 중 알고리즘 강의 + 알고리즘 문제풀이 실습 강의가 같이 있어서 관련하여 풀었던 문제와 가능하면 관련 개념도 정리하려고 합니다. 실습 과제 문제는 https://softeer.ai/ 에서 제공된 박희진 교수님의 컴퓨터소프트웨어캡스톤PBL 를 기반으로 작성되었습니다. 코드는 python 혹은 C로 작성하려고 합니다. 추가적으로아래의 링크를 통해 간단히 C 코드를 확인하고 실행해볼 수 있습니다. - D..
-
python 우선순위 que vs 힙 자료구조개발 이야기/알고리즘 및 코테 준비 2023. 1. 27. 08:59
https://github.com/zinhyeok/algorithm_study/tree/main/priority_que GitHub - zinhyeok/algorithm_study: 알고리즘 스터디 기록용 알고리즘 스터디 기록용 . Contribute to zinhyeok/algorithm_study development by creating an account on GitHub. github.com 문제 https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0..