문제 www.acmicpc.net/problem/5867 5867번: Scrambled Letters Farmer John keeps an alphabetically-ordered list of his N cows (1 > n; miv.resize(n), mav.resize(n); for (int i = 0; i > s; sort(all(s)); miv[i] = s; low.push_back(s); reverse(all(s)); mav[i] = s; high.push_back(s); } sort(all(low)), sort(all(high)); for (int i = 0; i < n; i++) { p1 = lower_bound(all(high), miv[i]) - high...
문제 programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 풀이 0. 어떤 종류의 카드를 제거한다고 할 때, 종류가 같은 카드 두 개를 찾으려고 매번 맵 전체를 순회하지않기 위해 카드의 종류별로 두 카드의 위치를 담아줍니다. [ line 86 ] 1. 모든 카드를 종류별로 제거해야하고 그 순서에 따라 움직이는 거리가 달라지기에 제거할 종류들의 순서를 next_permutation으로 구해줍니다. [ line 99 ~ 103 ] 2...
문제 programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 풀이 1. N이 200이하로 작으므로 플로이드 와샬을 사용하여 $O(N^3)$내에 모든 정점..
문제 programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 1. 우선 각각의 손님이 주문한 음식들로부터 음식들을 조합하여 원하는 길이(course[])만큼의 메뉴구성을 해주고, map의 key엔 메뉴구성을 value엔 그 개수를 담아 메뉴구성을 카운트합니다. 2. map을 순회하며 그 값(가능한 조합의 개수)가 2이상인 것들만 선택하여 길이를 인덱스로 갖는 벡터(cand)에 메뉴구성을 넣어줍니다. 3. 마지막으로 course..
문제 programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 카카오계정개발팀에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. 네오에게 주어진 첫 업무는 새로 가 programmers.co.kr 풀이 문제에서 구현하라는대로 그대로 따라 구현하면 됩니다. c++의 경우 isupper, tolower, substr과 같은 문자열(문자)를 다루는 stl을 적절히 사용하면 더 간단하게 구현할 수 있습니다. 코드 #include using namespace std; bool isok(char x) { if (islower(x) || isdigit(x) || x == ..
[5. IoC, DI, 컨테이너]제어의 역전IoC (Inversion of Control)구현 객체가 프로그램의 제어 흐름을 스스로 조종하는 것이 아닌 외부에서 관리하는 것 (AppConfig가 하는 역할) 프레임 워크 ↔ 라이브러리내가 작성한 코드를 제어하며 대신 실행 → 프레임 워크내가 작성한 코드가 직접 제어의 흐름을 담당 → 라이브러리 의존관계 주입 DI (Dependency Injection)실행 시점에 실제 구현 객체를 생성하고 클라이언트에 전달해 클라이언트와 서버의 실제 의존관계가 연결되는 것 DI를 사용하면 클라이언트 코드(구현 코드)를 변경하지 않고 클라이언트가 호출하는 대상의 타입 인스턴스를 변경할 수 있음 IoC, DI 컨테이너AppConfig처럼 객체를 생성하고 관리하며 의존관계를 ..
[4. 회원 도메인 개발 ~ (순수 자바코드로)]Note인터페이스의 구현체가 1개인 경우 관례 상 구현체의 이름을 인터페이스이름 + impl이라고 명명합니다. 순수 자바코드 할인 정책을 변경할 때 문제점 발생 /* in OrderServiceImpl class */ public class OrderServiceImpl implements OrderService{ //private final DiscountPolicy discountPolicy = new FixDiscountPolicy(); private final DiscountPolicy discountPolicy = new RateDiscountPolicy(); }OrderSerivceImpl이 DiscountPolicy 인터페이스에 의존하며 DIP..
[2. 좋은 객체 지향 설계의 5가지 원칙(SOLID)]1. SRP 단일 책임 원칙 하나의 클래스는 하나의 책임만 가져야 한다.하나의 책임에 대한 판단의 기준은 ? 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른것2. OCP 개방-폐쇄 원칙 확장에는 열려 있으나 변경에는 닫혀 있어야함.문제점 다형성을 사용하기 위해서 구현 객체를 변경하려면 클라이언트 코드를 변경해야함 → 이를 해결하기 위해서 DI, IOC 컨테이너와 같은 것들이 필요3. LSP 리스코프 치환 원칙 하위 클래스의 객체를 상위 클래스의 객체에 넣어도 기능적으로 문제없이 동작되어야함 ❓예시를 찾아보니 정사각형과 직사각형의 관계를 대입해서 생각해보면 단순히 정사각형이 직사각형의 상속을 받는다고 생각할 떄 직사각형의 생성자에서 비롯한 문제에..
- Total
- Today
- Yesterday
- 카카오 인턴십
- 2022 카카오 블라인드 코딩테스트
- 게임이론
- 구현
- 카카오 2020 인턴십
- 2021 카카오 블라인드
- 카카오 2021
- 2020 KAKAO BLIND RECRUITMENT
- DP
- 2022 카카오블라인드
- 투포인터
- 트리
- 프로그래머스
- 유니온파인드
- 동적계획법
- 프로그래머스 월간코드챌린지
- 카카오 표 편집
- 백준
- 2022 KAKAO BLIND RECRUITMENT
- 누적합
- Kakaoblind
- 표 편집
- BFS
- 2021 KAKAO BLIND
- 파싱
- 이분탐색
- 프로그래머스 위클리 9주차
- 카카오 2차코딩테스트
- 위클리 챌린지
- 시뮬레이션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |