본문 바로가기

전체 글

(426)
[Algorithm] [Python] 백준/BOJ - 1463 _ 1로 만들기 1463 - 1로 만들기 문제 설명 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 제출 코드 from sys import stdin n = int(stdin.readline()) calc_result = [n] cnt = 0 def checker(arr): # 연산 함수 l = [] for i in arr: l.append..
[Algorithm] [Python] 백준/BOJ - 11866 _ 요세푸스 문제0 11866 - 요세푸스 문제 0 문제 설명 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) 출력 예제와 같이 요세푸스 순열을 출력한다. 예제 입출력 input: ..
[Algorithm] [Python] 백준/BOJ - 2309 _ 일곱 난쟁이 2309 - 일곱 난쟁이 문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력..
[iOS] REST API, RESTful Rest API 이번에는 개발에 관심있는 사람이라면 한번쯤은 들어봤을 Rest API에 대해 알아보고자 한다. Rest API에 대하여 본격적으로 살펴보기 이전에 API 개념에 대해 먼저 알아보자! API란? API는 Application Programming Interface의 약자로, 응용프로그램에서 사용할 수 있도록, 운영체제 또는 프로그래밍 언어가 제공하는 기능을 이용해 이를 제어할 수 있도록 만든 인터페이스라고한다. ?... 솔직히 잘 이해가 안간다. 어플리케이션, 프로그래밍, 인터페이스 각각의 단어에 대해서는 익히 듣고 충분히 이해하고 있다. 보다 쉬운 이해를 위하여 비유를 통해 설명해보겠다. 대부분의 핸드폰에는 홈 버튼 이라는 기능을 제공한다. 즉, 해당 버튼을 누르면 언제 어디서든지 홈 화..
[iOS] MVC, MVVM, MVP MVC, MVVM, MVP 개발자는 프로젝트를 시작하기 이전에, 혹은 이미 진행중인 프로젝트에 투입되어 프로젝트를 진행하게 된다면 어떠한 아키텍처 패턴 으로 설계되어 있는지 파악해야 한다. 오늘은 iOS 개발시 주로 사용되는 MVC, MVVM, MVP에 대해 간단히 살펴보도록 한다. 아키텍처의 역할 본문 시작에 앞서 오늘날에는 왜이리 많은 디자인 패턴이 존재하며 이 선택이 왜 중요한지에 대해 짚고 넘어가도록 한다. 만일 우리가 정말 무수히 많은 양의 코드가 존재하는 대형 프로젝트를 진행하는 도중에 디버깅을 해야하는 상황이라고 생각해보자, 이러한 경우 우리는 클래스의 모든 속성들을 머릿속에 담아두고 기억하기 어렵기 때문에 어떠한 버그도 찾지 못하고 고치지도 못하는 불상사가 일어날 수 있다. 좋은 패턴들은 ..
[Algorithm] [Python] 백준/BOJ - 10015 _ 숫자 카드 10815 - 숫자 카드 INDEX 1.문제 설명 2.입력 3.출력 4.제출 코드 5.코드 설명 문제 설명 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 ..
[iOS] iOS13 이후 버전에서의 Navigation Controller 설정 기존에 구현한 회원가입 절차를 Navigation Controller를 이용해 재구현하였다. 위 구현과정에서 많은 삽질이 있었다... 정답은 SceneDelegate.swift 내에 있는 didFinishLaunchingWithOptions였다. iOS13 이전의 버전은 기존과 같이 AppDelegate에 있는 didFinishLaunching 에서 아래와 같이 처리해주면 된다. / // AppDelegate.swift // func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override poin..
[Algorithm] [Python] 백준/BOJ - 2455 _ 지능형 기차 2455 - 지능형 기차 INDEX 1.문제 설명 2.입력 3.출력 4.예제 입출력 5.제출 코드 6.코드 설명 문제 설명 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. 이 장치를 이용하여 출발역에서 종착역까지 가는 도중 기차 안에 사람이 가장 많을 때의 사람 수를 계산하려고 한다. 단, 이 기차를 이용하는 사람들은 질서 의식이 투철하여, 역에서 기차에 탈 때, 내릴 사람이 모두 내린 후에 기차에 탄다고 가정한다. 이 기차는 다음 조건을 만족하면서 운행된다고 가정한다. 기차는 역 번호 순서대로 운행한다. 출발역에서 내린 사람 수와 종착역에서 탄 사람 수는 0이다..