본문 바로가기

전체 글275

[프로그래머스] 코딩테스트 연습 - 같은 숫자는 싫어 (Python) 문제 및 풀이 문제) 프로그래머스 - 구현 - 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) 리스트 내에 연속적으로 중복되는 숫자들을 제거하는 문제였습니다. 파이썬 리스트의 마지막 인덱스([-1])을 이용하여 비교해가면 해결할 수 있습니다. 2022. 8. 19.
[프로그래머스] 2020 카카오 인턴십 - 키패드 누르기 (파이썬) 문제 및 풀이 문제) 프로그래머스 - 2020 카카오 인턴십 - 키패드 누르기 https://school.programmers.co.kr/learn/courses/30/lessons/67256?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) 키 패드 구현과 분기 처리를 통해 쉽게 해결할 수 있는 문제입니다. 키패드를 Dictionary 자료형을 통해 key_pad에 저장합니다. 함수 내에서는 두 엄지손가락의 현재 위치를 추적하고, 숫자를 입력할 때마다 두 손 중 어떤 손을 사용해야 하는지 결정합니다. 이 함수는 숫자 배열 number.. 2022. 8. 6.
[프로그래머스] 2022 카카오 공채 - 신고 결과 받기 (파이썬) 문제 및 풀이 문제) 프로그래머스 - 2022 카카오 공채 - 신고 결과 받기 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) K번 이상 신고 당한 유저를 신고 성공한 횟수의 리스트 배열을 return하는 문제였습니다. 오랜만에 풀다보니(특히 Python) 전에 자주 사용했던 Dictionary나 List에만 의존했습니다. 그러다보니 정답에서 index 처리를 위한 자료형이 계속 추가되었습니다. 아래는 프로그래머스에 나온 다른 사람 풀이 중 하나입니다.. 2022. 8. 4.
[Back-End] Node.js 첫걸음 Node.js란? 서버나 프레임워크가 아닌 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 Node.js의 장점 리얼 타임으로 동작 Customizing이 많을 경우 용이 자바스크립트 API 사용 가능 빠른 실행과 성능 Node.js 동작 방식 '이벤트 루프'가 어떤 이벤트가 발생하는지 계속 감시하다가 이벤트가 감지될 경우, 그 작업을 위해 스레드를 생성한다. 작업 스레드: 일종의 작업 공간 이벤트를 처리하기 위해 이벤트 루프는 처리 작업을 작업 스레드에게 맡겨버리고 다른 이벤트 감시한다. 콜백 함수: 작업이 끝나면 실행하는 함수 작업 스레드는 작업을 마치면 이벤트 루프에게 응답을 전송한다. 응답을 받은 이벤트 루프는 콜백 함수의 결과를 클라이언트에게 전송한다. npm v.. 2022. 5. 12.
[책 리뷰] Do it! 알고리즘 코딩 테스트 - 자바 편 리뷰 안녕하세요! 저는 최근 SW마에스트 준비 바빠서 글 올릴 시간이 부족했는데요, 오늘은 'Do it! - 알고리즘 코딩 테스트(자바 편)' 소개해드리고자 합니다. 최근 많은 기업들이 서류 평가의 한계를 느껴 블라인드 채용을 도입하면서 점차 코딩 테스트를 치르는 곳들이 많아졌습니다. 아무래도 컴퓨터공학에서 제일 어려운 '알고리즘' 과목을 바탕으로 문제를 출제하다 보니 많은 분들이 어려움을 느끼는 것 같습니다. 알고리즘 및 코딩테스트가 어려운 분들을 위해 Do-it! 시리즈로 알고리즘 코딩 테스트 자바 편이 신간 출판되었습니다! 함께 봐보실까요? 책의 첫인상 저는 책의 표지에 굉장히 신경을 많이 씁니다. 이 책은 오래 사용할 수 있도록, 책의 표지에 방수 처리와 모서리 접힘 방지가 되어 있어서 만족했습니다. .. 2022. 4. 18.
[백준] 14889번 - 스타트와 링크 (Python) 문제 및 풀이 문제) 백준 - 완전 탐색 - 스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 최대 인원 수가 20명이므로 완전 탐색으로 해결할 수 있습니다. Python의 Combination을 활용하여 팀을 나눕니다. 나눈 팀의 능력치 차이의 최솟값을 구하여 해결할 수 있습니다. Python 소스코드) 2022. 4. 3.
[백준] 2250번 - 트리의 높이와 너비 (C++) 문제 및 풀이 문제) 백준 - 트리 - 트리의 높이와 너비 https://www.acmicpc.net/problem/2250 2250번: 트리의 높이와 너비 첫째 줄에 노드의 개수를 나타내는 정수 N(1 ≤ N ≤ 10,000)이 주어진다. 다음 N개의 줄에는 각 줄마다 노드 번호와 해당 노드의 왼쪽 자식 노드와 오른쪽 자식 노드의 번호가 순서대로 주어진다. www.acmicpc.net 트리의 중위 선회를 통해 해방 레벨에서의 최소 idx와 최대 idx를 memo 합니다. 그 후, 1부터 N까지 너비의 최댓값을 찾아 출력합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/2250_%ED%8A%B8%EB%A6%A.. 2022. 3. 18.
[백준] 13302번 - 리조트 (C++) 문제 및 풀이 문제) 백준 - 동적 계획법 - 리조트 https://www.acmicpc.net/problem/13302 13302번: 리조트 수영이는 여름방학을 맞이하여 많은 놀이 시설이 있는 KOI 리조트에 놀러가려고 한다. 리조트의 하루 이용권의 가격은 만원이다. 하지만 리조트의 규모는 상상을 초월하여 모든 시설을 충분히 www.acmicpc.net 날짜와 쿠폰의 개수를 memoization하여 문제를 해결합니다. 쿠폰, 하루권, 3일권, 5일권을 각각 사용할 경우의 최소비용을 구합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/13302_%EB%A6%AC%EC%A1%B0%ED%8A%B8.cpp GitH.. 2022. 3. 18.
[백준] 2075번 - N번째 큰 수 (C++) 문제 및 풀이 문제) 백준 - 우선수위 큐 - N번째 큰 수 https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net N * N개의 모든 수를 저장하고 정렬해서 N번째 큰 수를 구하기에는 메모리 제한이 12MB이기에 불가능합니다. 대부분의 정렬 문제는 우선순위 큐로 해결할 수 있습니다. 우선순위 큐를 최소 힙으로 사용하여 문제를 해결했습니다. Input을 최소 힙에 push 하면서 최소 힙이 N개가 되게 유지합니다. 그 후, top을 출력하면 해답을 구할 수 있습니다. C+.. 2022. 3. 17.
[백준] 9935번 - 문자열 폭발 (C++) 문제 및 풀이 문제) 백준 - 문자열 - 문자열 폭발 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net ans에 문자열을 더하면서 폭발 문자열의 끝과 확인하여 만약 같을 경우 폭발 문자열 전체를 확인하여 같을 경우 pop 합니다. C++ 소스코드) 2022. 3. 17.
[백준] 1613번 - 역사 (C++) 문제 및 풀이 문제) 백준 - 플로이드 와샬 - 역사 https://www.acmicpc.net/problem/1613 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net 전/후 관계가 있는 역사 사건들이 주어질 때, 임의의 두 사건의 전/후 관계를 구하는 문제였습니다. 사건의 개수가 최대 400이므로 플루이드 와샬 알고리즘(O(N^3))으로 해결할 수 있습니다. >, < 관계를 1, -1로 저장하여 같은 전/후 관계끼리만 비교가 가능하므로 update 합니다. C++ 소스코드) 2022. 3. 16.
[백준] 1963번 - 소수 경로 (C++) 문제 및 풀이 문제) 백준 - BFS - 소수 경로 https://www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 주어진 첫 소수의 한 자리를 바꾸어 두 번째 소수를 만들 수 있는 최소 변환 수를 구하는 문제였습니다. 에라토스테네스의 체를 활용하여 10000 이하에 대하여 소수 판별(isPrime)을 진행합니다. 그 후 주어진 수의 첫자리부터 4번째 자리까지 변환하면서 소수이면서 방문하지 않은 수에 대하여 queue에 push 하여 BFS를 진행합니다. C++ 소스 코드) Full.. 2022. 3. 16.
[백준] 1261번 - 알고스팟 (C++) 문제 및 풀이 문제) 백준 - 다익스트라 - 알고스팟 https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 0 또는 1로 가중치가 있는 간선이 존재하기 때문에 다익스트라 알고리즘으로 해결했습니다. 간선과 좌표를 우선순위 큐에 push 하여 구현하며 가중치가 더 적을 간선이 들어올 경우 upadte 합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/S.. 2022. 3. 14.
[백준] 20152번 - Game Addiction (C++) 문제 및 풀이 문제) 백준 - 동적 계획법 - Game Addiction https://www.acmicpc.net/problem/20152 20152번: Game Addiction 첫째 줄에 집과 PC방의 좌표 (H, H), (N, N) 을 나타내는 두 정수 H, N (0 ≤ H, N ≤ 30) 이 차례로 주어진다. www.acmicpc.net 동적 계획법을 통해 현재 좌표에서 (H, H)까지 갈 수 있는 최단 경로의 개수를 memoization하여 해결합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/20152_GameAddiction.cpp GitHub - Chocochip101/BOJ_Solution:.. 2022. 3. 13.
[백준] 14620번 - 꽃길 (C++) 문제 및 풀이 문제) 백준 - 백트래킹 - 꽃길 https://www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 백트래킹으로 꽃을 심어가면서 최소 비용을 구합니다. C++ 소스코드) 2022. 3. 13.
반응형