알고리즘
-
100일 동안 매일 알고리즘을 하면? - 7일차알고리즘 2022. 1. 4. 14:10
100일 동안 매일 알고리즘을 하면? - 7일차 오늘 어제 코드포스에서 못푼 문제를 풀었다. https://codeforces.com/contest/1622/problem/C Problem - C - Codeforces codeforces.com Set 을 하는 경우와 Decrease 를 하는 모든 경우를 탐색했더니 시간초과가 났다. 그럴만한게 시간복잡도가 2^n 이다. 그래서 다른 사람들의 코드를 보았는데 이해하지 못하겠다. 무슨말인지. import copy from collections import deque t = int(input()) cnt = 0 ret = 0 for _ in range(t): n, k = map(int, input().split()) array = list(map(int, i..
-
100일 동안 매일 알고리즘을 하면? - 5일차알고리즘 2021. 12. 31. 01:38
100일 동안 매일 알고리즘을 하면? - 5일차 모자가 3종류 , 안경이 2종류, 신발이 3종류라고 할때 (모자 3종류 + 모자를 안쓰는 경우) * (안경 2종류 + 안경를 안쓰는 경우) * (신발 3종류 + 신발를 안쓰는 경우) = 4 * 3 * 4 - 1(아무것도 안입는 경우는 없으므로 1을 뺌) 이런식으로 간단한 경우의수 계산으로 풀 수있다. 처음에 이 문제를 어떻게 접근할지 고민하다가 combination (조합) 을 활용해서 풀었는데, 조합으로 풀면 시간 복잡도가 2^30 으로 너무 크게 나온다. https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr
-
100일 동안 매일 알고리즘을 하면? - 4일차알고리즘 2021. 12. 29. 22:54
100일 동안 매일 알고리즘을 하면? - 4일차 프로그래머스의 [해쉬] 카테고리의 문제 푸는중 Dict 에서 for 문으로 순회하는 방법 for key in dict: for key in dict.keys(): for key, value in dict.items(): for value in dict.values(): 문자열을 sort() 한다음 푸는 문제였음. https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.k..
-
100일 동안 매일 알고리즘을 하면? - 2일차알고리즘 2021. 12. 26. 15:04
100일 동안 매일 알고리즘을 하면? - 2일차 배운 것 : python 의 for 문 range(a,b) 를 사용할 때 a 에서 b-1 로 값이 감소하게 루프를 돌게 하려면 range(a,b, -1) 을 하면 된다. 해결한 문제 : https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr https://programmers.co.kr/learn/courses/30/lessons/42748
-
100일 동안 매일 알고리즘을 하면? - 1일차알고리즘 2021. 12. 24. 17:52
100일 동안 매일 알고리즘을 하면? - 1일차 도대체 어떻게 공부해야할지 잘 감이 안잡혀서 일단 프로그래머스에 있는 고득점kit 먼저 전부 다 풀어보기로 했다. 일단 오늘은 완전탐색에 있는 소수찾기 문제. 오늘 배운것: 1. python 순열 모듈 2. 소수판별법 2가지 2-1 : 1부터 n의 제곱근까지 나누어 떨어지는지 확인하는 방법 2-2: 에라토스테네스의 채 3. 문자열을 list 로 바꾸는 법/ 튜플 및 리스트를 문자열로 합치는 법 import math; import itertools; # 2 : 소수판별법 (제곱근까지 나누어보기) def isPrime(n) : if (n < 2) : return False; for i in range(1, int(math.sqrt(n)) + 1): # squr..