[Programmers] 지형 이동 (Level 4) (with. Java 메모리 절약 방법)
·
Coding Test/Solution
1. 문제 설명  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr아이디어는 그다지 어렵지 않은데, 객체 지향 설계 원칙 철저히 지켜가면서 풀면 무조건 메모리 초과 + 시간 초과에 발목을 잡힌다. 2. 아이디어 문제를 풀기 위해, 해결 영역을 3가지로 분리했다.사다리를 설치하지 않아도 되는 영역을 SCC로 묶기 (BFS)각 영역 i에서 영역 j로 이동하기 위한 최소 사다리 비용 계산 모든 영역을 잇기 위한 최소 사다리 설치 비용 계산 (크루스칼 알고리즘)  📌 SCC로 영역 구분SCC라는 용어가 어려울 수 있는데, 그냥 쉽게 말해서 사다리 설치 안 하고도 이동 가능한 영역을 묶어주는 작업이다. 모든 정점..
[Programmers] 기둥과 보 설치 (Level 3)
·
Coding Test/Solution
1. 문제 설명  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 최근 무지성으로 코테 문제를 줄줄이 풀고 있는데, 재밌는 구현 문제가 있어서 소개. 특정 조건에 따라 기둥과 보를 추가 혹은 삭제하면 되는데, N이 매우 작아서 재미삼아 풀어보기 좋다. 2. 아이디어 한 번에 풀지 못 했을 때를 대비해서라도 기둥과 보의 설치 조건을 검증하는 비즈니스 규칙을 분리하면 좋다. 코드로 보여주자면, 다음과 같이 메서드를 분리하고 시작하는 게 편하다.// 기둥이라면if (type == 0) { if (action == 0) { removePillar(x, y); } else { ..
[Programmers] 퍼즐 조각 채우기 (Level 3)
·
Coding Test/Solution
1. 문제 설명  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코테의 근본은 C++하지만 최근 기업 코테에서 C++을 받아주질 않는 추세다.이유가 뭔고 하니 C++로 해킹을 하는 사람들이 있다고......:(그것도 있고 기업 코테의 목적이 알고리즘 그 자체보단, 언어의 이해도를 측정하는 구현 능력에 초점을 맞추면서 겸사겸사 제한하는 것 같다. 덕분에 코테도 자바로 하는데, 손에 안 익어서 죽을 맛이다. 2. 아이디어 생각 이상으로 시간을 너무 잡아먹었다.3월 이후로 개발에 몰두한다고 코테 손 좀 놨더니 바로 폼 떨어져버림. 1️⃣ 블록 탐색일단 처음 보자마자..
[Algorithm] 데이터 압축(Data Compression)
·
Coding Test/Algorithm
이번 거 너무 대충 썼다.. 그냥 안 쓰려다가 이미 절반이나 써버려서 그냥 빠르게 머릿속 버퍼에 채우고 버릴 겸 포스팅  📕 목차1. Introduction2. Run-length 코딩3. Huffman 압축4. LZW 압축1. Introduction 📌 무손실 압축과 복원메시지: 압축하고자 하는 데이터 B압축: B를 압축한 결과 C(B)를 생성복원: D(C(B)) == B가 되도록 재구성압축률(compression ratio) = C(B)의 크기 / B의 크기텍스트 문서의 경우 50~75% 이상의 압축률 📌 압축의 예시 : 유전자 코드유전자 코드 {A, C, T, G} 4개의 알파벳으로 구성표현 방법ASCII 코드로 각 알파벳을 표현할 경우: 문자당 8-bit 소요Two-bit 인코딩: 문자당 2..