반응형

전체 글 53

[Swift] 스위프트 기본 문법 공부(3) - Array

Array 배열이라고 부르는 Array는 변수(데이터)를 0부터 시작하는 번호(인덱스) 순서에 따라 관리하는 자료구조이다. 스위프트에서 Array는 두 가지 방법으로 선언할 수 있다. var testArray = Array() var testArray2 = [String]() 첫 번째처럼 선언할 땐 안에 타입을 명시해주어야 하고, 두 번째처럼 선언할 땐 [] 안에 타입을 명시해주어야 한다. 타입을 명시하지 않으면 오류가 난다.(Type Safe) append() 선언한 Array에 데이터를 삽입할 땐 append()를 사용한다. var arrayName = [String]() arrayName.append("baby") arrayName.append("coder") // 들어간 순서대로(0부터) inde..

DEV - iOS/iOS 2022.01.09

[알고리즘 유형 / Python] 그리디 이론

그리디(Greedy) 알고리즘은 지금 이 순간, 지금 당장, 최적의 답을 찾는 방법이라고 한다. 지금 당장에서는 최적의 방법이지만 나중과 종합적으로 봤을 때는 최적이 아닐 수 있다. 욕심쟁이 알고리즘, 탐욕법 등의 이름으로 불린다. 그리디 알고리즘으로 풀어야하는 대표적인 문제 유형으로는 거스름돈 활동 선택 문제 최소 신장 트리 등등의 유형들이 있다. 거스름돈 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. 단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 거스름돈 유형에서는 가장 큰 화폐 단위부터 돈을 거슬러 주는 ..

Algorithm/그리디 2022.01.08

[Swift] 스위프트 기본 문법 공부(2)

기본 연산자 & 비교 연산자 다른 언어에서 흔하게 쓰이는 방법 그대로 쓰인다 +, -, *, /, % var a:Double = 20 var b:Double = 30 var c = a / b 이렇게 a, b 두 수가 있을 때 두 수가 같은 타입이면 연산할 때 큰 지장이 없다. var a:Int = 20 var b:Double = 30 var c = a / b 하지만 이런식으로 서로 다른 타입을 연산할 땐 오류가 나니까 유의하도록 하자 스위프트는 이렇게 타입에 대해 엄격하게 취급하는 Type Safe 특징을 가지고 있다. 비교 연산자 또한 다른 언어들과 다르지 않게 사용한다. Unicode 전화번호를 입력 받을 땐 숫자만, 이름을 입력 받을 땐 한글만 등등 특정한 문자들만 취급해야하는 경우가 있다. 이럴 ..

DEV - iOS/iOS 2022.01.04

[Swift] 스위프트 기본 문법 공부(1)

변수 & 상수 // 변수 var greeting = "Hello, playground" // 상수 let userName = "baby_coder" var 명령어 : 변수 선언 let 명령어 : 상수 선언 변수는 선언 후에 다른 값으로 새로 재정의가 가능하지만, 상수는 한 번 정의하면 다른 값으로 재정의가 불가능하다. 변수와 상수는 대입된 값의 타입을 추론한다. 위와 같이 큰 따옴표로 감싸진 문장을 대입했기에 자동으로 String 타입으로 추론(Type Inference)한다. 추론하지 않고 직접적으로 타입을 정의할 수 있다. var annotationStr:String = "String Annotation Test" var age:Int = 25 변수명 옆에 : 콜론과 타입을 지정해준다. 이렇게 타입을..

DEV - iOS/iOS 2021.12.27

[백준 알고리즘 / Python] 기본 수학_1 - 1712번 손익분기점

고정비용 A, 가변비용 B, 판매가격 C 로 변수에 입력받았다. A, B, C = map(int, input().split()) if A/(C-B) < 0: print(-1) else: count = 1 while True: if A+(B*count) < C*count: break count += 1 print(count) 처음에는 단순하게 while문을 돌려서 손익분기점(count)을 찾아갔는데 시간초과가 났다. 나와 비슷한 사람이 질문한 글을 보고 수학적으로 생각해야된다는 답변이 있어 다시 풀었다. A, B, C = map(int, input().split()) if C-B < 0: print(-1) else: print((A // (C-B)) + 1) 분명 맞게 했는데 이번엔 런타임 에러(ZeroD..

[백준 알고리즘/Python] 문자열

1단계 11654번 아스키 코드 character = input() print(ord(character)) ord 함수에 문자를 넣으면 해당 문자의 아스키 코드값을 반환한다. 2단계 10809번 숫자의 합 N = int(input()) num = input() sum = 0 for i in num: sum += int(i) print(sum) 3단계 10809번 알파벳 찾기 S = input() resultList = [ -1 for _ in range(26)] count = 0 for i in S: alphabet = ord(i) - 97 if resultList[alphabet] != -1: count += 1 continue resultList[alphabet] = count count += 1 f..

[백준 알고리즘/Python]1차원 배열

1단계 10818번 최소, 최대 n = int(input()) listA = list(map(int, input().split())) print(min(listA), max(listA)) 2단계 2562번 최댓값 listA = list() for i in range(9): listA.append(int(input())) print(max(listA)) print(listA.index(max(listA))+1) listA = [int(input()) for _ in range(9)] print(max(listA)) print(listA.index(max(listA))+1) 두 가지 방법으로 풀어보았다. 첫 번재 방법은 for문을 이용하여 listA를 만들었고, 두 번째 방법은 리스트 컴프리헨션(Compre..

[Python 기초] 표준 입출력

입력 """ 표준 입력 방법 input() : 한 줄의 문자열을 입력 받는 함수 map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용 ex) 공백을 기준으로 구분된 데이터를 입력 받을 때 list(map(int, input().split())) ex) 공백을 기준으로 구분된 데이터의 개수가 많지 않을 때 a, b, c = map(int, input().split()) """ n = int(input()) data = list(map(int, input().split())) data.sort(reverse=True) print(data) ''' 사용자로부터 입력을 빠르게 받아야 하는 경우 sys.stdin.readline() 사용하는데, 입력 후 엔터가 줄 바꿈 기호로 입력되므로 rstr..

DEV/Python 2021.08.23
반응형