분류 전체보기
-
[백준] 15732번: 도토리 숨기기(Pyhton, 이진 탐색)Algorithm PS👩🏻💻/백준 2024. 3. 21. 11:15
문제 링크 https://www.acmicpc.net/problem/15732 15732번: 도토리 숨기기 첫째 줄에 상자의 개수 N(1 ≤ N ≤ 1,000,000)과 규칙의 개수 K(1 ≤ K ≤ 10,000), 도토리의 개수 D(1 ≤ D ≤ 1,000,000,000)가 주어진다. 그 후 K개 줄에는 A, B, C(1 ≤ C ≤ A ≤ B ≤ N)가 주어지며 A번 상자부터 www.acmicpc.net 풀이 처음엔 단순히 N(상자 개수)개의 누적합 테이블(dp)을 만들어, start, end, mid를 통해서 dp[mid]의 도토리 개수에 따라 mid를 파악하려 했다. [시간 초과 난 코드] import sys input = sys.stdin.readline N, K, D = map(int, inpu..
-
[백준] 21278번: 호석이 두마리 치킨(Python, 플로이드워셜)Algorithm PS👩🏻💻/백준 2024. 3. 20. 15:32
문제링크 https://www.acmicpc.net/problem/21278 21278번: 호석이 두 마리 치킨 위의 그림과 같이 1번과 2번 건물에 치킨집을 짓게 되면 1번부터 5번 건물에 대해 치킨집까지의 왕복 시간이 0, 0, 2, 2, 2 로 최소가 된다. 2번과 3번 건물에 지어도 동일한 왕복 시간이 나오지만 더 www.acmicpc.net 풀이 - combinations로만 풀기엔 시간초과가 나는게 뻔해서 고민했다. 완전 탐색 문제인데 어떻게 다 돌지? - 질문게시판에 플로이드 워셜로 하면 금방 다그래서 봤더니 진짜 금방이다:) - 모든 지점 -> 모든 지점은 플로이드워셜, 최단 경로 알고리즘으로만 생각했는데 완전 탐색도 포함이니까 잊지말자! from itertools import combin..
-
리스트, 딕셔너리의 주요 연산 시간 복잡도Algorithm PS👩🏻💻/개념 2024. 3. 4. 10:29
리스트의 주요 연산 시간 복잡도 입력 순서가 유지, 내부적으로는 동적 배열로 구현되어 있다. 연산 시간복잡도 설명 len(a) O(1) 전체 요소의 개수를 리턴한다. a[i] O(1) 인덱스 i의 요소를 가져온다. a[i:j] O(k) i부터 j까지 슬라이스의 길이만큼 k개의 요소를 가져온다. 이 경우 객체 k개에 대한 조회가 필요하므로 O(k)이다. elem in a O(n) elem 요소가 존재하는지 확인한다. 처음부터 순차 탐색하므로 n만큼 시간이 소요된다. a.count(elem) O(n) elem 요소의 개수를 리턴한다. a.index(elem) O(n) elem 요소의 인덱스를 리턴한다. a.append(elem) O(1) 리스트 마지막에 elem 요소를 추가한다. a.pop() O(1) 리스..
-
[백준] 20056번: 마법사 상어와 파이어볼(구현, Python)Algorithm PS👩🏻💻/백준 2023. 10. 8. 04:09
문제https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치www.acmicpc.net 풀이시뮬레이션, 구현방향성 조건때문에 헷갈려서 시간이 너무 오래걸렸다 ㅜㅜㅜㅜ 시뮬레이션은 ㄹㅇ 독해가 중요한듯,,모여진 파이어볼의 방향이 모두 짝이거나 홀이면 -> [0, 2, 4, 6], 그렇지 않고 섞여있는 방향이면 -> [1, 3, 5, 7] 이다.import mathfrom copy import deepcopy# move# 일단 방향대로 속력만큼 움..
-
[iOS] Xcode PlaygroundiOS🍎/iOS 2023. 9. 27. 13:26
플레이 그라운드란?: 스위프트 코드를 입력하면 실시간으로 결과가 실행되는 인터랙티브 환경이다. 실행 버튼을 한번 누르면 코드가 추가될때마다 추가된 코드들을 실행 시킬 수 있다.단계별로 코드 실행이 가능하며, 실행 결과도 단계별로 보여준다. 주석에 마크업이 적용된 형식이 가능하다./*: # Welcome to Playgrounds This is your *first* playground which is intended to demonstrate: * The use of **Quick Look** * Placing results **in-line** with the code */ 위와같이 주석에 마크업 처리를 한 것을 Raw markup 형식이라고 한다. 이것을 rendered markup 형식으로 표시하려..
-
[TIL] OptionalToday I Learned 2023. 9. 26. 22:02
Optional이란? :swift 는 안전한 코딩을 할 수 있게 해주는 언어. 안전성의 바탕이 되는 요소 중 하나가 바로 Optional이라는 개념이다. Optional은 type casting이나 nil value 체크 등에 있어서 중요한 역할을 한다. Optional은 “?”을 통해 표현된다. 의미: 이 변수에는 값이 들어갈 수도 있고, 아닐 수도 있다.(nil) 즉, nil(타입)을 표현하기 위한 수단으로 ?를 사용한다는 것. let myFirstOptionalVar: Int? 위처럼 변수 타입 뒤에 ?를 붙여주면 해당 변수는 Optional이 된다. swift에선 기본적으로 변수 선언 시 nil 값이 들어가는 것을 허용하지 않는다. (컴파일 에러) 그러므로, 아래 코드에서 첫 째줄은 에러이고, 두..
-
[TIL] git rebaseToday I Learned 2023. 9. 24. 01:54
git merge *git은 commit기준으로 사진처럼 동글뱅이 상태가 생긴다. * checkout을 기준으로 거기에 다른것을 덧붙이는 것! git checkout feature git merge main feature 가지에 main을 붙이는 것이다. 위 명령어를 git merge feature main 이렇게 한줄로도 표현 할 수 있다. 아래 사진은 위 명령어에 대한 결과물이다. 병합은 어떤 방식으로든 기존 브랜치를 없애지 않기 때문에 비파괴적 운영을 한다. Git rebase : feature 브랜치를 main브랜치로 Rebase 할 수 있다. git checkout feature git rebase main => 이 결과 main 브랜치 끝에 feature 전체가 옯겨가 붙는다. 그러므로 mai..
-
[백준] 21315번: 카드섞기(Python)Algorithm PS👩🏻💻 2023. 8. 31. 15:35
문제 https://www.acmicpc.net/problem/21315 21315번: 카드 섞기 마술사 영재는 카드 더미를 이용한 마술을 개발하였다. 카드들에는 1부터 N까지의 숫자가 적혀있으며 초기 상태에는 1이 맨 위에 있으며 N개의 카드가 번호 순서대로 쌓여있다. 영재는 마술을 www.acmicpc.net 문제 풀이 - 분류: 완전탐색, 시뮬레이션 N, K의 크기가 크지 않아서 완전탐색 가능 ( 3중 for문을 돌려도 100 * 2 * 10 = 2000번 정도??.. 2^k 중복조합을 이용해서 모든 k의 경우의 수를 구해주었다. from itertools import product max..