일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트라이
- 알고리즘 문제풀이
- dft
- leetcode
- 프로그래머스
- 알고리즘문제풀이
- leet code
- 독서노트
- 스위프트
- 코테준비
- 카카오 코딩테스트
- IOS
- SWIFT
- DTFT
- SWIFTUI
- DSP
- 코테
- 신호처리
- 컨볼루션
- PYTHON
- 파이썬
- 이산신호처리
- 전자공학
- 릿코드
- 코딩테스트
- 백준
- backjoon
- Trie
- 알고리즘
- Leet Coding Challenge
- Today
- Total
목록알고리즘 문제풀이 (54)
매일 매일 성장하는 섭섭군
https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 문제 요약 이번에 풀어볼 문제는 셀프 넘버라는 문제입니다. 문제를 읽어보면 알 수 있듯이 양의 정수 n과 n의 각자리수를 더해서 만들 수 없는 수를 셀프넘버라고 합니다. 우리는 이 셀프넘버를 10000보다 작은 수들 중에서 찾아내면 되는 문제입니다. 문제풀이 IDEA - 1~10000까지의 숫자들 중 셀프넘버가 아닌 것들을 삭제해보자! - 삭제하는..
www.acmicpc.net/problem/12018 12018번: Yonsei TOTO 연세대학교 수강신청이 얼마 전부터 바뀌어, 마일리지 제도로 바뀌었다. 이 제도는 각각의 학생들에게 마일리지를 주어 듣고 싶은 과목에 마일리지를 과목당 1~36을 분배한다. 그리고 모두 분배 www.acmicpc.net 문제요약 가장 많은 과목수를 골라야 한다. 즉 내가 가진 포인트를 최대한 활용해서 많은 강의를 듣는것이 목적인 문제이다. 문제풀이 IDEA - 각 과목별로 수강할 수 있는 가장 적은 마일리지를 알아낸다. 신청인원이 수강총 정원보다 작을 경우 수강 마일리지는 1 신청인원이 수가총 정원보다 클 경우 수강 마일리지는 다음과 같다. 수강신청 마일리지를 오름차순으로 정렬 -> [수강총 정원 -1]이 수강 마일리..
www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 문제 요약 진실을 알고있는 사람과 연관된 파티에서는 거짓말을 하지 못한다. 즉 진실을 알고 있는 사람과 연관되어 있지 않은 그룹이 몇 개 있는지 파악해야 하는 문제이다. 문제의 예제 입력으로는 문제 파악이 힘들 수 있기 때문에 아래 예시를 함께 봐보자! 입력 4 3 1 4 2 1 2 1 3 2 4 3 4명의 사람과 3개의 파티가 존재한다. 진실을 알고 있는 사람은 1명이며 4번이 진실을 알고 있다. 위의 예시에서 4번 사..
programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 문제요약 배열에 있는 문자열의 종류를 모두 포함하는 최소 구간을 찾으면 되는 문제입니다. 간단하게 모든 경우의 수를 생각하면서 문제를 풀게되면 시간초과가 나게됩니다. 문제풀이 IDEA 시간 초과 없이 문제를 해결하기 위해 다음과 같은 고민을 진행하였습니다. 배열에 있는 문자열을 한번만 순환하여 찾는 방법이 없을까? 특정 구간 안에 있는 문자열의 종류의 수를 한번에 찾을 수 없을까? 먼저 한번만 순환하여 찾는 방법으로 지렁이 ..
programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 문제요약 2차원 배열에서 최단거리를 구하는 문제에서 방향을 바꾸었을때 추가적인 비용이 발생하는 문제이..
programmers.co.kr/learn/courses/30/lessons/64063 코딩테스트 연습 - 호텔 방 배정 programmers.co.kr 문제요약 문제를 읽어보면 쉽게 이해할 수준의 문제이다. 시간복잡도를 고려하지만 않는다면 방이 차있을 경우 1씩 더해가면서 확인하는 작업을 하면 정확성 테스트는 통과 할 수 있다. 하지만 1씩 더하는 방법을 사용할 경우 효율성 테스트에서 시간초과가 발생한다. 즉 방이 차있을경우 일일이 확인하지 않고 빠르게 배정된 방번호보다 크면서 비어있는 방을 찾는것이 관건이다. 문제풀이 IDEA 이번 문제의 주요 IDEA는 방이 비어 있는 방을 가리키는 것이다. 주요 알고리즘은 다음과 같다. 방 딕셔너리를 생성하고 다음과 같은 Key, Value 값을 가지도록 한다. ..
www.acmicpc.net/problem/9202 9202번: Boggle 각각의 Boggle에 대해, 얻을 수 있는 최대 점수, 가장 긴 단어, 찾은 단어의 개수를 출력한다. 한 Boggle에서 같은 단어를 여러 번 찾은 경우에는 한 번만 찾은 것으로 센다. 가장 긴 단어가 여러 개�� www.acmicpc.net 문제 요약 이번 문제는 문제를 파악하는데에도 시간이 다소 걸렸다. 필자처럼 문제를 파악하기 힘드신 분들을 위해 사진으로 표현하면 다음과 같다. 단어목록과 보드가 주어지면 이 안에서 단어목록에 있는 단어들을 찾으면 되는 것이다. 주어진 보드에서 단어목록에 있는 단어를 모두 찾았다면 그 이후의 정답을 내는 작업은 매우 간단하다. 문제에서 하라는대로 하면 된다. 문제풀이 IDEA 문제를 해결하기..
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 문제요약 이번에 풀어본 문제는 2020 카카오 블래인드 채용 코딩테스트에서 출제되었던 문제입니다. 이차원 배열인 Key 와 Lcok이 주어집니다. 각 배열은 0 과 1로 구성되어 있습니다. Key를 회전시키거나 이동하여 Lock에 맞다면 True를 Reutrn 하고 맞지 않는다면 False를 리턴합니다. Key는 Lock을 벗어나도 됩니다. 문제풀이 IDEA 본 문제를 풀때 눈여겨 봐야할 것이 N,M의 크기입니다. 둘다 20..