- 17142-python풀이2료일https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 문제를 읽고 두가지가 생각났다. 1. 어디에 바이러스를 심어놔야 제일 빠르게 될까 2. BFS를 이용해 좌우상하로 전염시켜 시간을 구하자. 그래서 바이러스를 놓을 수 있는 모든 조합을 구해준 후 BFS를 통해 시간이 더 최소인 것을 구하기로 했다. BFS함수에서 visited 이차배열로 한번에 감염을 시키면 1씩 이전값에서 증가하도록 count까지 해주었다. 마지막까지 감염시키는데 몇초걸리는지 알기 위해 ..
- 2023-05-22 02:08:34
- 백준2143- python (gold 3)2료일https://www.acmicpc.net/problem/2143 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 처음에 n개의 숫자가 나오고 m개의 숫자가 나오는데 거기 있는 것들의 합으로 t를 만드는게 목표이다. 이 문제를 보고 뭔가 동전들로 금액맞추기가 떠올랐다. 처음에 Nlist, Mlist를 받으면 거기서 가능한 모든 조합을 정리하고 값들을 dict으로 만들어 주었다. 왜냐하면 시간복잡도가 O(1)이기에 for문을 두번돌..
- 2023-05-21 15:27:07
- 1043-python2료일문제를 해석해보면 각라인에 파티가 있는데 그 중 진실을 아는 사람이 하나라도 있으면 그 파티에서는 지민이는 거짓말쟁이로 판단되어진다. 그래서 생각한것이 Union&find를 떠올렸다. 파티에 잇는 사람들을 노드들로 생각하고 잇고 나서 find를 통해 만약 진실을 아는 사람이 있으면 그 연결한 노드들에서는 거짓말을 하면 안되는 것이다. import sys input = sys.stdin.readline N,M = map(int,input().split()) peoplelist = list(map(int,input().split()))[1:] uplist = [i for i in range(N+1)] for i in peoplelist: uplist[i] = 0 #정답을 아는놈드은 0으로 def Union(..
- 2023-05-11 09:56:16
- MVVM,MVC pattern 좋나요 - swiftui2료일오늘은 개발 패턴에 관해 이야기 해보려고 한다. MVC, MVVM등 다양한 패턴이 존재하는 것으로 알고 있다. UIkit을 공부하였을때 MVC를 써보긴 했는데 먼저 잠깐 애플의 MVC 패턴을 보면 viewController로 view와 controller가 합쳐져서 모델과 상호작용을 하는 형태이다. Model : 앱의 데이터, 비즈니스 로직. 고로 구조체나 클래스가 주로 있다. View: 유저가 보는 화면을 그림. 앱과의 상호작용도 여기 포함. 이것은 모델과 소통해서는 안됨 Controller : 이것이 모델과 뷰사이에서 상호작용하는 역할 근데 뷰컨의 단점이 무엇이냐면 컨트롤러가 뷰의 역할도 하고 life cycle도 관리하기에 뚱뚱해진다는 것이다. 분리도 어렵고 재사용도 어려워! MVVM Pattern..
- 2023-05-04 13:38:14
- [프로그래머스]-이모티콘할인행사(swift)2료일우리가 생각해야하는것은 1. 가입자를 늘리자. 2. 그중 판매액은 최대로 우선 이모티콘의 최대개수는 7개이고 할인율은 4개이다. 그래서 4의7승의 경우의수가 나오고 인원은 최대 100명이므로 곱해보면 1,600,000대략번의 횟수가 나오기에 완전탐색 가능하다고 생각을 하였다. 그렇다면 중복순열을 일일이 구현해야할까? 라고 의문점이 들었다 왜냐면 파이썬은 앵간한건 구현이 되어있기 때문이다. 찾아보니 product라고 중복순열을 만들어주는 모듈이 있엇다. 그래서 바로 냠냠! 할인율로 조합될수 있는 모든 경우의 수를 구해주고 첫번째의 경우의수부터 끝의 경우의수까지 루프를 돌면서 유저가 가지고 있는 정보들가 비교해서 제일 많이 구독시킬수 있는 경우에서 가장 total_price가 많은 경우를 answer에 갱신..
- 2023-05-04 12:58:14
- Spritekit with swiftui(1)2료일Spritekit은 2D 컨텐츠를 부드럽게 만들거나 2D게임을 만드는데 사용되는 프레임워크이다. 그렇다면 Unity등 다른것에 비해 장점은 무엇일까? 왜 우린 이걸 공부해야할까? 뭐 물론 유니티에 비해 한계가 있다. 하지만 굳이뽑자면 iOS안에 있어서 다른라이브러리를 다운받을 필요 없이 사용할수 있다 무료고 쉽다 그후 구성요소들을 공부해보자. 위에서 부터 크게 1. SKView : Sprite kit의 기본 뷰이다. 이 뷰는 각 장면 컨텐츠를 렌더링하여 표시 2. SKScene : view는 장면들을 전환하여 보여줄수 있다. SKScene은 각 장면에 해당하는 클래스. 화면에 구성하는 노드들 관리. 터치이벤트도 여기서 처리 3. SKNode : 장면 내의 배경, ui요소 등이 여기 해당. 각각의 노드는 ..
- 2023-05-01 18:52:32
- 알고리즘 2023kakaoblind-개인정보 수집 유효기간(python)2료일def solution(today, terms, privacies): termDict = {} answer =[] todayyear, todaymonth, todayday = int(today[0:4]), int(today[5:7]), int(today[8:]) for i in terms: termDict[i[0]] = int(i[2:]) for index, j in enumerate(privacies): uhogigan = termDict[j[-1]] year = int(j[0:4]) month = int(j[5:7]) day = int(j[8:10]) aftermonth = month + int(uhogigan) if(aftermonth>12): year+=1 aftermonth -= 12 if(ye..
- 2023-04-30 01:45:00
- CoreMotion - Swift2료일CoreMotion은 가속도계, 자이로스코프 등을 처리하는 프레임워크이다. CoreMotion 프레임워크에 있는 것으로서 ios기기 모션센서에 접근할수 있게 해준다. 가속도계가 사용가능한지 확인하구 가능하면 업데이트 간격을 0.1초로 잡고 메인큐에서 업데이트 받는다. data에 가속도계 데이터 포함. 업데이트 사용 끝나면 중지해야함. 1, gyroscope: 핸드폰의 회전을 측정한다. 2. MagnetoMeter : 자기계 측정. 3. Device Motion: 디바이스 가속도, 회전, 중력, 자기력 정보가 담겨져 있음. 4. Accelerometer : 가속도 측정 그런데 여기서 궁금증이 생겼다. 언제 어떤것을 사용하는게 옳을까? 특히 3.4가 헷갈렸다. 그래서 리서치를 진행한 결과 3. DeviceM..
- 2023-04-29 16:22:50
- 프로그래머스-귤고르기(Python)2료일1. 첫 풀이 def solution(k, tangerine): erasedual = list(set(tangerine)) countarr = [] answer = 0 for i in erasedual: #시간복잡도 n제곱 여기서 줄여야겟네? a = tangerine.count(i) countarr.append(a) countarr.sort(reverse=True) #시간복잡도 nlogn for j in countarr: k -= j answer=1 if(k
- 2023-04-29 11:03:41
- 1647 - swift2료일우리는 길 유지비의 합을 최소로 만들어야 한다. 그렇다면 유지비 촤르르륵 있는 배열을 유지비로 오름차순으로 정렬을 해놓고 낮은것부터 만약 노드 길이 없다면 생성해주고 맨 마지막꺼만 빼주면 그게 최소가 아닐까? 라고 생각을 하였다. //1647 let NM = readLine()!.split(separator: " ").map{Int($0)!} let N = NM[0] let M = NM[1] var arr : [[Int]] = Array(Array(repeating: [], count: M)) for i in 0..Int{ //특정 원소가 속한 집합을 찾는것이다. if(parent[x] != x){ // 만약 루트노드가 아니면 루트노드 찾을때까지 반복! var parent = find_parent(par..
- 2023-04-24 11:06:35
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)