일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SWEA
- 시뮬레이션
- 2020 카카오 인턴십
- GIT
- 프로그래머스
- 구현
- 백준
- 플로이드 와샬
- 2021 KAKAO BLIND RECRUITMENT
- 2020 KAKAO BLIND RECRUITMENT
- 백트래킹
- 스택
- 브루트포스
- 다익스트라
- BFS
- 투 포인터
- 로봇 청소기
- 크루스칼
- 플로이드와샬
- 파이썬
- 투포인터
- Spring
- 트라이
- 2019 KAKAO BLIND RECRUITMENT
- 최소 신장 트리
- 이분탐색
- 조합
- 우선순위큐
- 2018 KAKAO BLIND RECRUITMENT
- 비트마스킹
- Today
- Total
목sssssss록알고리즘/프로그래머스 (28)
개발조아
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60062 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 "스카피"는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하 programmers.co.kr 그리디하게 dist를 정렬해서 가장 긴 것 부터 풀면 되지 않을까 했다가 계속 틀렸던 문제이다. weak = [0,10,30,50,100,120] dist = [5,10,50,100] 이 경우 답은 1이다 weak가 100인 점에서 길이가 100인 친구가 돌면 된다. 그래서 브루트포스로 해결하였다. dist의 순서를 섞고 0번째부터 그 순서대로 다..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 문제의 설명은 어렵지 않았다. 처음에는 word에 ?를 하나씩 붙여서 가능한 경우를 다 만들고 그것을 키로하고 값은 개수로 하는 딕셔너리로 만들었었다. 그리고 쿼리문을 키로해서 딕셔너리를 확인했다. word의 길이는 최대 10000자이고, 모든 가사의 길이의 합이 1백만자 이하 이므로 되지 않을까 했다. 근데 문자를 이어붙이는 과정에서 슬라이싱이 많이 들어가서 효율성 테스트에서 틀리지 않았나 싶다. 그래서 해설을 봐보니 트라이 자료구조를 사용해야한다고 한다. 문자열을 트리 구조로 저장해서 단순 비교해서 검색하는 경우 훨씬 빠르다..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 브루트포스로 해결했다. 열쇠의 칸중 최소 한개가 자물쇠에 올수 있도록 범위를 확장해서 열쇠를 올려보면 된다. 문제의 테케 1번으로 설명하면 아래와 같다. key는 3x3이고 lock는 3x3이다. lock에 key의 최소 한칸이 오려면 key의 크기의 -1만큼 왼쪽위로 범위를 확장하고 올려보면 된다. 위 그림처럼 3x3 lock를 -2,-2에서 2,2까지 있는 5x5범위로 확장하여 열쇠를 올려본다..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72414?language=python3 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 역시 카카오 시간관련 문제를 좋아한다. 다행인건 시간이 복잡하지 않다는 것이다. 이 문제는 전체 구간의 길이가 주어졌을 때 특정 구간의 합이 가장 큰것의 시작점을 찾는 것이다. 근데 이때 그 구간이 여러개라면 가장 먼저 나온 구간의 시작점을 구하는..
문제 링크 : https://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 n이 200으로 작아서 플로이드 와샬로 풀었다. 풀이는 생각보다 너무..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/84021 코딩테스트 연습 - 3주차 [[1,1,0,0,1,0],[0,0,1,0,1,0],[0,1,1,0,0,1],[1,1,0,1,1,1],[1,0,0,0,1,0],[0,1,1,1,0,0]] [[1,0,0,1,1,0],[1,0,1,0,1,0],[0,1,1,0,1,1],[0,0,1,0,0,0],[1,1,0,1,1,0],[0,1,0,0,0,0]] 14 [[0,0,0],[1,1,0],[1,1,1]] [[1,1,1],[1,0,0],[0,0,0]] 0 programmers.co.kr 질문하기에 너무 공감됐던 글이다. 1,2주차는 쉬웟는데 갑자기 너무 어려워졌던 문제였다. 올해 LG CNS 8월 입사자 4번 문..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72412 = target: right = mid else: left = mid+1 return len(scores)-right def trans_info(info): for i in info: new_info = i.split() new_info[4] = int(new_info[4]) count_info(new_info,['-','-','-','-'],0) for key in info_dict: info_dict[key].sort() def count_info(info,new_info,start): global info_dict new_condition = ''.join(new_info) if ne..
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 주어진 메뉴를 주어진 주어진 길이만큼 조합해서 새로운 메뉴를 만들고, 같은 길이의 새로운 메뉴 중 가장 많이 나온 메뉴를 리스트에 담아 정렬해서 리턴하면 된다. 주의 할점은 ["XYZ", "XWY", "WXA"] 3번 테스트케이스에서 2자리로 메뉴를 만든다고 했을 때 "XW"와 "WX"는 같은 메뉴로 친다. 이것 때문에 계속 답을 못찾고 있었다. 새..