전체 글 573

[2019 카카오 블라인드]매칭 점수

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42892 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 문자열 파싱을 알맞게 잘 할 수 있는지 물어볼 수 있는 문제였다. indexOf를 이용해서 각 태그들에 대해서 필요한 문자열을 추출한다. 1. 태그 안에 있는 웹페이지 URL -> 태그는 여러개일 수 있다. 2. 태그 안에 있는 검색어 3. 태그 안에 있는 태그 URL 링크점수는 기본점수 / 외부링크 수 이므로 계산이 가능하고 매칭 점수에 더해지므로 따로 관리 안해도 된다...

[2021 카카오 블라인드]광고 삽입

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/72414 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 시청자가 듣는 시간에 광고를 삽입해서 새로운 시청자가 등장하는 경우, 시청자가 시청을 끝낸 경우, 광고 시간이 끝나는 경우 3가지로 나누어서 생각해보려 했다. 시청자의 시청 시작 시간이 35:50-46:30, 43:50-55:11, 49:55-59:15,이고 광고 시간이 10:00 이라면 45:50, 53:50, 59:55이런식으로.. 1.35분 50초에 광고 삽입했을 때 ..

[2020 카카오 인턴십]경주로 건설

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67259 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 마지막 테스트케이스가 꽤나 골치 아팠던 문제였다. 24번까지는 따로 방문 처리를 하지 않더라도 금액에 따라 방문 여부가 결정되니 있던 없던 차이가 별로 없었다. 25번 케이스는 오는 방향에 따른 최소 비용을 구할 수 있는 지를 판별하는 케이스였다. ex) 3x3의 크기의 배열 (2,3, 동쪽)의 400원 (2, 3, 북쪽) 500원이라고 했을 때 400원이 선택 된다. (2..

[2019 카카오 인턴십]불량 사용자★

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 범위가 좁다보니까 모든 user_id를 banned_id 만큼 생성해서 맞는지 확인하려고 했었는데, 순열로 풀자니 중복 문제가 조합으로 풀자니 banned_id에서 매칭되는 순서 문제가 발생했다. 그래서 타 블로그를 참고 했다. 먼저 banned_id를 기준을 넣을 수 있는 user_id를 보관해두는 list를 만들었다. (정규표현식을 이용했고 '.'라는 문자는 임의의 한 ..

[2020 카카오 인턴십]보석 쇼핑

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67258 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 투 포인터를 이용하여 풀 수 있는 문제 보석을 살 수 있는 구간일 때 범위를 계속 줄여가며 누적해야 한다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public int..

[2021 카카오 인턴십]표 편집

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/81303 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 기존의 행번호를 기억해야된다는 생각에 List랑 Map, Stack을 사용해서 풀려고 했다. 복원하는 과정에서 서로의 연결지점을 변경하는 부분이 문제가 있었다. 잘 안풀려서 타 블로그를 참고를 했다. 리스트 자체를 조작하지 않고 사용여부로 판단한다면 서로 연결된 노드만 신경써주면 된다! 👩‍💻 코드 import java.io.BufferedReader; import java..

[2018 카카오 블라인드 1차]셔틀버스

📍 문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/17678 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 접근 일단 탈 수 있는 사람들 태우고 콘이 탈 수 있는 시간을 끝까지 갱신해주면 된다. 제일 늦게 도착할 수 있는 시간을 자리 있을 경우/없을 경우로 나누었다. 1.자리가 있으면 셔틀 출발 시간에 딱 맞춰가서 탄다. 2.자리가 없으면 마지막 사람 1분 전에 가서 탄다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOExcepti..

220704-220710

0704 면접 준비 0705 면접 보기 + 개념 정리 이펙티브 자바 읽기(~아이템 21) 0706 프로그래머스 문제 풀기 프로그래머스 과제테스트 하기 이펙티브 자바 읽기(~아이템 25) 면접 개념 공부 0707 프로그래머스 문제 풀기 이펙티브 자바 읽기(~아이템 30) 면접 개념 공부 0708-0710 면접 준비 다음주 면접 끝나면 기술 면접같은 부분 대비해서 평소에 말로 잘 설명할 수 있도록 나름대로 개념들을 정리해두는(포스팅) 연습을 해두자. 강의나 서적도 좋지만 꾸준히 뭔가를 개발하고 있다는 것이 어필이 더 될 것 같은 느낌이다. 이펙티브 자바는 내용이 어려워서 적어가면서 하려했는데 효율이 안나서 방법을 바꿨다. 책은 동시에 읽지말고 하나씩 읽자!

TIL/2022 2022.07.10

[Effective Java]30.이왕이면 제네릭 메서드로 만들라

클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다. 매개변수화 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다. 예컨대 Collections의 '알고리즘' 메서드(binarySearch, sort 등)는 모두 제네릭이다. 제네릭 메서드 작성법은 제네릭 타입 작성법과 비슷하다. 단순한 제네릭 메서드라면 아래와 같이 작성할 수 있다. // 코드 30-2 제네릭 메서드 (177쪽) public static Set union(Set s1, Set s2) { Set result = new HashSet(s1); result.addAll(s2); return result; } // 코드 30-3 제네릭 메서드를 활용하는 간단한 프로그램 (177쪽) public static void main(String[]..

Book/Effective Java 2022.07.07

[Effective Java]29.이왕이면 제네릭 타입으로 만들라

아이템 7에서 다룬 Object[]를 사용하는 단순한 스택 코드가 있다. 이 클래스는 원래 제네릭 타입이어야 마땅하다. 일반 클래스를 제네릭 클래스로 만드는 첫 단계는 클래스 선언에 타입 매개변수를 추가하는 일이다. 배열을 사용하는 코드를 제네릭으로 만들려 할 때는 E[]로 만들 수 없다. 적절한 해결책은 두 가지다. 첫 번째는 제네릭 배열 생성을 금지하는 제약을 대놓고 우회하는 방법이다. Object 배열을 생성한다음 제네릭 배열로 형변환하는 것이다. 이렇게 한다면 E[]로 생성할 때와는 다르게 비검사 형변환 경고가 발생한다. 문제의 배열은 클라이언트로 반환되거나 다른 메서드에 전달되는 일이 없기에 타입이 안전하다. 비검사 형변환이 안전함을 직접 증명했다면 이전 아이템에서 학습했듯이 범위를 최소로 좁혀..

Book/Effective Java 2022.07.07