분류 전체보기 219

[Python] 프로그래머스 - 외벽 점검

1. 문제 - 프로그래머스 외벽 점검https://school.programmers.co.kr/learn/courses/30/lessons/60062 ✅ 풀이from itertools import permutationsdef solution(n, weak, dist): answer = 9 # 1) _len = len(weak) for i in range(_len): # 2) weak += [weak[i] + n] # 3) 모든 취약점 위치를 시작점으로 하여 각 친구가 취약 지점들을 커버할 수 있는지 확인함 for i in range(_len): for friend in permut..

[Python] 백준 2011 - 암호코드

1. 문제 - 백준 2011 암호코드https://www.acmicpc.net/problem/2011 이 문제는 DP (다이나믹 프로그래밍, 동적 계획법) 로 풀 수 있다.첫번째 예시인 25114를 고려해보면 2, 25, 251, 2511, 25114.. 로 진행하면서 각각 암호화할 수 있는 문자가 이전 문자를 사용해서 만들 수 있다는 점에서 짐작할 수 있다. ✅ 풀이 과정1) 첫번째 예시인 25114의 정답이 6으로 나오는 과정을 살펴보면, 2/5/1/1/425/1/1/425/11/425/1/142/5/11/42/5/1/14 여기서 반복문을 통해 차례대로 수를 방문했을 때,현재 인덱스에서 10부터 26까지의 수로 만들 수 있는지 없는지에 따라서 경우의 수가 추가됨을 알 수 있다.이를 유의하며 경우의 수..

[Python] 프로그래머스 다리를 지나는 트럭

1. 문제 - 프로그래머스 다리를 지나는 트럭https://school.programmers.co.kr/learn/courses/30/lessons/42583 해당 문제는 큐를 활용하여 푸는 문제다.예시에서 대기 트럭 - 다리를 건너는 트럭 - 다리를 지난 트럭으로 움직이는 상황을 보면 먼저 들어간 데이터가 먼저 빠져나오는 (선입선출) 형태에서 큐 자료구조를 활용하는 문제임을 짐작할 수 있다. ✅ 풀이from collections import dequedef solution(bridge_length, weight, truck_weights): bridge = deque([0] * bridge_length) # 다리 위 상태 (처음엔 트럭 없음 → 0으로 채움) answer = 0 # 경과 ..

[Python] 프로그래머스 그리디 문제 (체육복, 단속 카메라, 큰 수 만들기, 기지국 설치)

1. 문제 - 프로그래머스 체육복https://school.programmers.co.kr/learn/courses/30/lessons/42862 ❓해당 문제가 그리디인 근거1) 최대한 많은 학생에게 체육복을 빌려주어야한다 --> "최대 이익" 키워드2) 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있다 --> 잃어버린 학생과 여벌이 있는 학생을 둘다 정렬함으로써, 빌려줄 수 있는 체육복을 순차적으로 빌려주는 것이 곧 최대 이익을 보장한다def solution(n, lost, reserve): _reserve = sorted([r for r in reserve if r not in lost]) # 1 _lost = sorted([r for r in lost if r not..

[Python] 프로그래머스 섬 연결하기

1. 문제 - 프로그래머스 섬 연결하기https://school.programmers.co.kr/learn/courses/30/lessons/42861 해당 문제는 유니온-파인드, 그리디 알고리즘을 사용하여 풀이할 수 있는 문제이다. 1) 섬 사이에 다리를 건설하는 비용이 주어질 때, 최소 비용으로 모든 섬이 서로 통행할 수 있도록 함 --> 그리디2) 섬과 섬 간의 연결관계가 있을 때, 모두를 통행(하나의 집합으로 만들기)하도록 한다 --> 유니온-파인드3) 비용을 최소화 하기 위해, 다리를 추가 시 사이클을 형성하지 않도록 한다 --> 파인드를 통해 사이클 판단 *사이클이란, 집합 내 노드끼리 순환하는 구조를 의미한다.- 집합 내 각 노드의 부모 노드가 모두 같을 경우, 사이클을 이룬다고 말할 수 ..

[Python] 백준 20058 마법사 상어와 파이어스톰

1. 문제 - 백준 20058 마법사 상어와 파이어스톰https://www.acmicpc.net/problem/20058 시뮬레이션, 빡구현 문제는 먼저 기능 별로 함수로 나누는게 중요하다. * 문제에서 설명하는 파이어스톰 분석1) 단계 L 을 입력받는다. 마지막 줄에 L1, L2, ... LQ가 Q개만큼 주어지고, Q번만큼 마법을 시전함2) 2^N X 2^N 격자의 얼음판에서 2^L X 2^L 격자로 나누어, 각 격자의 모든 부분을 90도 회전시킨다.3) 이후 얼음이 있는 칸 3개 또는 그 이상과 인접하지 않은 칸은 얼음의 양이 1 줄어든다. 여기서 반복하는 기능을 함수화하면 된다.1. 2^L X 2^L 격자로 나누어, 각 격자의 모든 부분을 90도 회전하기, 2. 인접한 칸이 얼음이 있는 칸이 3개 ..

[Python] 프로그래머스 등굣길, 백준 16918

1. 문제 - 프로그래머스 등굣길https://school.programmers.co.kr/learn/courses/30/lessons/42898 해당 문제는 DP로 풀이할 수 있다. 이유는- 완전 탐색으로 풀기에는 경우의 수가 너무 많고,- 집에서 학교까지 도착하기까지의 시작과 종료 지점이 명확히 존재하며- 최단경로의 개수는 이전 경로에서 가져와서 해를 구할 수 있기 때문이다. ❌ 틀린 풀이def solution(m, n, puddles): dp = [[0] * m for _ in range(n)] for i in range(n): for j in range(m): if [j+1, i+1] in puddles: continue..

[Python] 프로그래머스 가장 큰 정사각형 찾기, 백준 2304

1. 문제 - 프로그래머스 가장 큰 정사각형 찾기https://school.programmers.co.kr/learn/courses/30/lessons/12905# 해당 문제는 다이나믹 프로그래밍(DP)로 풀이할 수 있다. 1) 행과 열이 각각 최대값이 1000임--> 행과 열을 반복하며 1을 마주칠때마다 정사각형을 이루는지 판단하려면 반복문이 하나 더 들어가야하는데, 최악의 경우 시간복잡도가 1000^3 = 10^9이 넘어갈 수 있다.--> 코딩테스트에서는 일반적으로 1억 = 10^8번 연산을 기준으로 판단하므로, 시간초과가 발생한다.--> 완전탐색으로 풀이할 수 없어서 다른 알고리즘을 생각해야함 2) 만들 수 있는 최대 정사각형이므로 예를들어 3x3인 정사각형을 만들 수 있는 위치의 경우 2x2인 정..

[Python] 백준 1283

1. 문제 - 백준 1283https://www.acmicpc.net/problem/1283 ✅ 풀이n = int(input())keys = []for _ in range(n): words = input() answer = "" for i, w in enumerate(words): # 1. 단어의 첫글자가 이미 단축키로 지정되어있는지 확인하고 # 여기서 단축키는 대소문자를 구분하지 않으므로 upper 혹은 lower로 통일하여 key 리스트에 추가한다. if (i == 0 and w.upper() not in keys) or (words[i-1] == " " and w.upper() not in keys) and "[" not in answer: # "[" not ..

[SwiftUI] NavigationView vs NavigationStack

안녕하세요 ~! SwiftUI를 공부하던 중, iOS 16 이후로 NavigationStack이 등장하게 되면서,NavigationView가 훗날 deprecated될 예정이라는 내용을 보고, 2개가 어떻게 다른지 살펴보고자합니다. * 공식문서: https://developer.apple.com/documentation/swiftui/navigationview NavigationView | Apple Developer DocumentationA view for presenting a stack of views that represents a visible path in a navigation hierarchy.developer.apple.com1. NavigationView- 기존 UIKit의 UINav..

🍎 iOS/SwiftUI 2025.05.30
반응형