본문 바로가기

Computer Science16

프로그래머스 프렌즈4블록 - 자세한 풀이 (Java) 🧩 문제 정보문제: https://school.programmers.co.kr/learn/courses/30/lessons/17679난이도: LV 2유형: 구현, 자료구조NewCodes의 풀이스스로 풀었는가: O다시 풀어볼 문제인가: X풀이 시간: 45분 제출 횟수: 1회선택 언어: Java풀이 환경: 프로그래머스 내 IDE📝 풀이 정보요구 사항 정리2 x 2 형태로 같은 블록이 4개 붙어 있을 경우 블록 사라짐블록 지워진 후에는 그 위에 있는 블록들이 떨어져서 빈 공간 채우기앞선 1~2의 시행에서 지운 블록이 있다면, 또 다시 1~2의 과정을 반복앞선 1~2의 시행에서 지워진 블록이 없다면, 게임 종료 풀이 설계 : 풀이 설계에 있어 크게 세 메서드를 거치면 될 거라고 생각했습니다. 2 x 2 형태.. 2024. 5. 30.
프로그래머스 멀쩡한 사각형 - 자세한 풀이 (Java) 🧩 문제 정보문제: https://school.programmers.co.kr/learn/courses/30/lessons/62048#난이도: LV 2유형: 구현, 수학NewCodes의 풀이스스로 풀었는가: X다시 풀어볼 문제인가: O풀이 시간: 60분 + a제출 횟수: 7회선택 언어: Java풀이 환경: 프로그래머스 내 IDE📝 풀이 정보요구 사항 정리대각선에 의해 관통되는 정사각형은 제외해야 한다.가로 길이와 세로 길이는 1억 이하의 자연수이다. 풀이 설계 : 구글링해보니 다들 수학적으로 푸신 것 같은데, 저는 구현 위주로 접근하여 풀이했습니다. 입출력 예를 통해 큰 직사각형 안에서 관통된 직사각형 부분이 똑같은 패턴으로 반복되는 걸 발견했습니다. 그래서 가장 최소 단위의 패턴을 알고 총 패턴이 .. 2024. 5. 29.
백준 5430번 AC - 자세한 풀이(Java) 🧩 문제 정보문제: https://www.acmicpc.net/problem/5430난이도: 골드 5유형: 구현, 자료구조NewCodes의 풀이스스로 풀었는가: O다시 풀어볼 문제인가: O풀이 시간: 60분 + a제출 횟수: 6회선택 언어: Java풀이 환경: IntelliJ IDEA CE (코드 자동완성 기능 X)📝 풀이 정보요구사항 정리R - 뒤집기D - 첫 번째 수 버리기 (배열 비어있다면 에러)풀이 설계 : 문제의 요구사항, 흐름이 크게 복잡하지 않아서 풀이 전에 별도로 설계하진 않았습니다. (안 한 걸 후회합니다... 뒤에서 그 이유가 나옵니다.)통과한 코드 (실전 풀이) : 실전 풀이를 보고 싶으신 분은 해당 코드를 참고해 주세요! 그다음은 리팩토링한 코드를 첨부했으니 좀 더 정돈된 코드를.. 2024. 5. 24.
백준 3190번 뱀 - 자세한 풀이 (Java) 🧩 문제 정보백준 3190번 뱀  문제: https://www.acmicpc.net/problem/3190난이도: 골드 4유형: 구현, 자료구조NewCodes의 풀이스스로 풀었는가: O풀이 시간: 48분제출 횟수: 1번선택 언어: Java풀이 환경: IntelliJ IDEA CE (코드 자동완성 기능 X)📝 풀이 과정문제 요구 사항 정리게임 시작 시 뱀 몸의 길이 1, 맨 위 맨 왼쪽(1, 1), 오른쪽매 초 머리를 늘려 이동, 방향 전환(왼쪽 L, 오른쪽 D)도 존재사과 유무에 따라 꼬리 유지 or 삭제벽이나 몸에 부딪히면 게임 끝 문제 풀이 설계(feat. 의사 코드)1초마다 이동하는 함수 구현하기      뱀의 머리 방향에 따라 움직이기 & time++      벽이나 몸에 부딪혔는지 확인하기 .. 2024. 5. 23.
카카오맵이 최적 경로를 결정하는 데까지 카카오맵에서 불편함을 느끼고, 궁금증을 해결하다.   안녕하세요! NewCodes입니다!! 우선 이전 포스팅에서제가 가졌던 궁금증에 대해 다시 살펴보겠습니다.   위 그림은 제가 사는 동네입니다. 보시다시피 1번 경로가 2번보다 훨씬 더 빠른 길입니다. 하지만, 카카오맵이 항상 2번 경로를 추천해줬습니다.  그래서 저는 카카오택시를 탈 때면 항상 시간과 돈을 불필요하게 소모하곤 했습니다. 이러한 현상이 1년 이상 반복되자저는 궁금해졌습니다.  카카오맵은 도대체 어떤 이유로2번 경로를 최적 경로로 추천할까?  길찾기 서비스는 어떤 원리로 동작할까?   드디어 이 궁금증에 대한 마침표를 찍고자 합니다!이를 위해 아래와 같은 과정을 거쳤습니다.  1단계: 가설 설정2단계: 다양한 길찾기 알고리즘 학습A* Al.. 2024. 2. 7.
카카오맵과 티맵이 사용하는 알고리즘 - Customizable Contraction Hierarchies CCH(Customizable Contraction Hierarchies)  안녕하세요! NewCodes입니다!  저번 포스팅에서는 최단 경로 알고리즘 중의 하나인 CH 알고리즘(Contraction Hierarcies)에 대해 다뤘습니다. 해당 알고리즘의 가장 큰 특징을 요약해드리자면요. 전처리 단계에서 '지름길'을 추가하여 쿼리에서 비약적인 속도를 향상시킬 수 있다는 것입니다.   CH는 기존의 다익스트라, A* 알고리즘보다 비약적인 속도 향상을 가져온 건 사실입니다. 하지만, 실시간으로 빠르게 변하는 교통 상황 정보를 처리하는 데는 무리가 있었습니다. 그 이유는 다음과 같습니다.  특정 도로 구간의 정체, 기상 악화 등으로 인한 각종 이슈가 생기면 다시 전처리 작업을 해야 합니다. 그래프의 모양이 .. 2024. 2. 6.
Contraction Hierarchies - 현실에서 쓰이는 길찾기 알고리즘 Contraction Hierarchies - 현실에서 쓰이는 길찾기 알고리즘  안녕하세요. NewCodes입니다!   이번 글에서는 현실에서 쓰이는 길찾기 알고리즘인CH(Contraction Hierarchies)에 대해 알아보겠습니다.   해당 글을 읽기 전에사전지식으로 다익스트라와 A* 알고리즘이 필요합니다!   CH 알고리즘이란'적절한 지름길을 미리 만들어두고 효율적으로 탐색할 수 있게 하는 알고리즘'을 의미합니다.   그리고 CH 알고리즘은 현재 카카오맵, 티맵에서 쓰이는CCH 알고리즘의 근간이 됩니다.    CH 알고리즘에 대해 학습하기 이전에학습할 필요성을 알아보기 위해우선 다익스트라와 A* 알고리즘에 대해 간단히 짚어보겠습니다.   괜찮은 다익스트라 알고리즘 있는데 왜 굳이 CH가 필요해?.. 2024. 2. 6.
반응형