전체 글

전체 글

    [백준 5639번] 이진 검색 트리 - 파이썬

    ⚠️ 문제 https://www.acmicpc.net/problem/5639 5639번: 이진 검색 트리 트리를 전위 순회한 결과가 주어진다. 노드에 들어있는 키의 값은 106보다 작은 양의 정수이다. 모든 값은 한 줄에 하나씩 주어지며, 노드의 수는 10,000개 이하이다. 같은 키를 가지는 노드는 없다 www.acmicpc.net 🔐 풀이 트리를 전위 순회한 결과를 입력으로 주는데, 전위 순회는 루트-왼쪽-오른쪽 순으로 탐색하기 때문에 루트 출력 -> 왼쪽 서브트리 모두 출력 -> 오른쪽 서브트리 모두 출력 형태가 됩니다. 문제에서는 후위 순회한 결과를 출력해야하기 때문에 아래처럼 재귀를 통해 왼쪽 서브트리를 먼저 끝까지 탐색하고 오른쪽 서브트리를 끝까지 탐색하고 루트를 출력해주면 됩니다. 🧑🏻‍💻 ..

    [백준 1141번] 접두사 - 파이썬

    ⚠️ 문제 https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant, www.acmicpc.net 🔐 풀이 문제에서 접두사X 집합이란 집합의 어떤 한 단어가 다른 단어의 접두어가 되지 않는 집합입니다. 접두사X 집합인 부분집합의 최대 크기는 곧 전체 집합에서 다른 단어의 접두어가 되는 단어만 제외한 집합이 됩니다. 또, A 단어가 B 단어의 접두어가 되기 위해서는 A 단어의 길이가 B 단어의 길이보다 짧거나 같아야 합니다. ..

    [프로그래머스 / Lv.1] 개인정보 수집 유효기간 - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 약관의 유효기간은 약관의 종류별로 딕셔너리에 저장해두고, "모든 달은 28일까지 있다고 가정한다"고 문제에 주어져있기 때문에 비교해야 하는 오늘 날짜와 개인정보의 보관 일자는 모두 일 수로 변경해서 비교해줍니다. 🧑🏻‍💻 코드 def solution(today, terms, privacies): answer = [] term_dic = {} today_year, today_m..

    [프로그래머스 / Lv.1] 대충 만든 자판 - 파이썬

    ⚠️ 문제 https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔐 풀이 keymap에 들어있는 키 배열을 확인하면서 입력 가능한 문자와 그 문자를 입력하기 위해 필요한 버튼 클릭 횟수를 key_dic 딕셔너리에 저장해둡니다. 이때, 같은 문자가 여러 번 할당된 경우가 있다고 했기 때문에 min 함수를 이용해 클릭의 최소 횟수를 저장합니다. 이후 target의 문자를 key_dic에서 찾아 모두 더하면 그것이 버튼 클릭 최소 횟수가 됩니다. 🧑🏻‍..

    [Swift / Xcode] 프로젝트 Storyboard 삭제 세팅 - Code Base UI

    프로젝트 진행 간 Storyboard를 제거하고 Code로만 UI를 구성해보게 되었는데, 이를 위해 필요한 세팅을 기록해두고자 합니다. ✅ 1. Main Storyboard 삭제 프로젝트에서 Storyboard를 제거하는 것이 목표이기 때문에 우선 Main Storyboard를 삭제해줍니다. ✅ 2. Project TARGETS Project TARGETS -> Build Settings -> filter에 "main" 검색 -> UIKit Main Storyboard File Base Name 삭제 ✅ 3. Info.plist 수정 Info.plist -> Scene Configuration -> Application Session Role -> Item 0 -> Storyboard Name 삭제 ✅..

    [Swift 문법 정리] 5-2. 함수 - 일급 객체, 클로저

    "꼼꼼한 재은 씨의 Swift 문법편" 책을 공부하며 정리한 내용입니다. ✅ 일급 객체, 일급 함수? 일급 객체(First-Class Object)란 다음의 조건을 만족하는 객체를 말합니다. 객체가 런타임에도 생성이 가능해야 한다. 인자값으로 객체를 전달할 수 있어야 한다. 반환값으로 객체를 사용할 수 있어야 한다. 변수나 데이터 구조 안에 저장할 수 있어야 한다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다. 그리고 함수가 위의 조건을 만족하면 그 함수를 일급 함수(First-Class Function)라고 합니다. 또한 언어가 일급 함수를 가지면 그 언어를 함수형 언어라고 하고, Swift는 함수형 언어입니다. 일급 함수는 다음과 같은 특성을 가집니다. 1. 변수나 상수에 함수를 대입할..

    [Swift 문법 정리] 5-1. 함수 - 기본 개념, 매개변수

    "꼼꼼한 재은 씨의 Swift 문법편" 책을 공부하며 정리한 내용입니다. ✅ 함수가 가진 이점? 1. 동일한 코드가 여러 곳에서 사용될 때, 함수화하여 재사용할 수 있습니다. 2. 여러 기능을 하나의 소스 코드에서 작성하는 것보다 기능 단위로 함수화했을 때 가독성이 좋아집니다. 3. 로직을 변경할 때 함수 내부를 수정하면 되기 때문에 용이합니다. ✅ 사용자 정의 함수 정의 func testFunction(a: Int, b: Int) -> Int { return a + b } 기본적인 함수의 정의 방법은 위와 같습니다. 함수 이름의 첫 글자는 반드시 영어 또는 언더바로 시작해야하고, 매개변수 값이 필요 없다면 빈 칸으로 생략할 수 있고, 반환 값이 없다면 반환 값 또한 생략할 수 있습니다. 하지만 반환 값..

    [백준 14630번] 변신로봇 - 파이썬

    ⚠️ 문제 - https://www.acmicpc.net/problem/14630 14630번: 변신로봇 승균이는 변신로봇에 심취해있었다. 한 분야가 극에 달한 사람은 그것을 통해 세상을 이해한다는 말이 있는데, 승균이가 바로 그러했다. 승균이는 시시때때로 감정이 변하는 사람들을 보면서 www.acmicpc.net 🔐 풀이 이 문제는 다익스트라 알고리즘을 통해 해결할 수 있었습니다. 이 문제는 우선 문제를 올바르게 이해하는 데 어려움이 있었습니다. 문제에 제시되어 있는 예시대로 로봇의 현재 상태가 123이고 다른 상태가 222라고 한다면 비용은 (1-2)^2 + (2-2)^2 + (3-2)^2 인 2가 됩니다. 그리고 만약 각 변신 상태가 11, 33, 55인 경우 11에서 55로 변신해야할 때, 11에..

    [백준 2307번] 도로검문 - 파이썬

    ⚠️ 문제 - https://www.acmicpc.net/problem/2307 2307번: 도로검문 그림 1은 어떤 도시의 주요 지점과 그 지점들 간의 이동시간을 나타낸 그래프이다. 그래프의 노드는 주요 지점을 나타내고 두 지점을 연결한 도로(에지)에 표시된 수는 그 도로로 이동할 때 걸 www.acmicpc.net 🔐 풀이 이 문제는 다익스트라 알고리즘을 통해 해결할 수 있었습니다. 경찰이 도로를 막아 용의자의 탈출을 최대한 지연시켜야 하고, 지연 시간을 구하기 위해서는 우선 용의자의 가장 빠른 탈출 시간을 구해야합니다. 첫번째로 다익스트라 알고리즘을 통해 용의자의 가장 빠른 탈출 시간 (최단 거리)를 구한 이후, 경찰이 검문할 수 있는 도로를 하나씩 선택하여 제외하고 최단 거리를 구해 앞서 구한 최..