본문 바로가기

알고리즘4

Swift 프로그램 종료하기 exit(0) Swift문법을 공부할 겸 Swift로 코딩테스트 문제들을 풀어보고 있다. 그 중 난해한 점이 있는데 바로 프로그램 종료이다. Swift는 main.swift에서 글로벌로 실행되어 따로 main함수가 없다. C같으면 return 0 로 메인함수를 종료 시켜 프로그램을 종료시킬 수 있지만 도대체 swift는 어떻게 프로그램을 종료시킬까? 찾아보니 간단하게 exit(0) 함수를 호출하여 종료 할 수 있다고 한다. 단, 주의 할 점은 Foundation을 import해야한다. 다음은 프로그램 종료 예시 이다. import Foundation var kgSugar = Int(readLine()!)! var bags = 0 while kgSugar >= 0 { if kgSugar % 5 == 0 { bags +=.. 2022. 7. 9.
Swift 삽입정렬, 선택정렬, 퀵 정렬 Swift 언어에 좀 익숙해 보고자 알고리즘에서 제일 처음에 나오는 정렬 코드를 짜보았다. 간단하게 함수, 배열, 조건문, 반복문 등을 익일 수 있었다. 1. 삽입정렬 func insertionSort(arr: inout [Int]) { for i in 1 .. 0 && arr[j - 1] > key { arr.swapAt(j - 1 , j) j-=1 } arr[j] = key } return } 2. 선택정렬 func selectionSort(arr: inout [Int]) { for i in 0 ..< arr.count { var min = i for j in i ..< arr.count { if arr[min].. 2022. 7. 3.
해커랭크(HackerRank) - Running Time of Algorithms / C++ 문제 : 해커랭크 Running Time of Algorithms www.hackerrank.com/challenges/runningtime/problem?h_r=next-challenge&h_v=zen Running Time of Algorithms | HackerRank The running time of Algorithms in general and Insertion Sort in particular. www.hackerrank.com 난이도 : easy // Complete the runningTime function below. int runningTime(vector arr) { int shfitCout = 0; for(int i = 1 ; i= 0 && arr[j]>value) { arr[j.. 2020. 7. 11.
재귀(Recusion) 알고리즘 사용 예 재귀(Recusion) 알고리즘 재귀 함수는 자기 자신을 참조하는 함수입니다. 원래의 문제를 동일한 유형의 하위 문제로 나누고 하위문제를 해결한 다음 결과와 결합합니다. 이러한 알고리즘을 분할 정복법 이라 합니다. 또 하위 결과를 저장하여 조회하는 알고리즘이 추가되면 동적프로그래밍이라고 부릅니다. 이러한 재귀함수 다음과 같은 구조를 가져야 합니다. Base Case : 재귀함수의 종료 조건으로 더 이상 문제를 쪼갤수 없을 때, 자기자신을 호출하지 않고 답이 나올 때 Recusion Case: 복잡한 입력을 더 간단한 입력으로 분류하여 자기자신을 호출 재귀의 활용 예시 다음은 재귀 함수의 활용 예시 입니다. factorial (계수) 구하기 다음 factorial 함수는 n! 을 구합니다. int fact.. 2020. 7. 10.