목록cs (18)
Olive Study Room

1은 처음 시도한 코드, 2는 다른 사람 코드. forEach 배열의 모든 경우를 돌려준다. for-in과 같지만 불필요한 for _ in 1...Arrray.count의 형태를 없애 코드를 줄일 수 있다. 1. for-each로 0부터 9까지 돌려가며 같은 값 찾기(정수를 모든 자리를 배열로 만들기) var value: Int = 1 var arr: [Int] = Array.init(repeating: 0, count: 10) for _ in 1...3 { let line = Int(readLine()!)! value *= line } var result = String(value) let arr2 = Array(result).map({String($0)}) arr2.forEach({ for i in ..

이 문제를 푸는데 게속 시간 초과가 났다. let line = Int(readLine()!)! var num = readLine()!.split(separator: " ").map({Int(String($0))!}) var maxNum: Int = -1000000 var minNum: Int = 1000000 for i in 0...num.count-1 { if num[i] > maxNum { maxNum = num[i] } if num[i] < minNum { minNum = num[i] } } print("\(minNum) \(maxNum)") 첫 제출한 코드인데 num.min, num.max로 간결하게 바꿔도 동일한 오류가 났다. 구글링해 본 결과 var num = readLine()!.split(..

테스트 케이스의 종료 지점이 없을 때! 무한정 input을 받아야 할 때! ( = 프로그램 종료 시점이 명시되어있지 않은 경우) 이 경우 while true를 조건으로 하면 무한루프가 돌아 런타임 에러가 나는데...! 'EOF(End Of File)' 를 사용해서 멈춰야한다. swift에서 입력은 readline() 메소드를 통해서 받는데, 이 메소드를 살펴보면 readLine(strippingNewline:) 최신 line의 끝을 통하거나 EOF에 도달할 때까지를 표준 input으로 읽어 문자열을 반환한다. Declaration func readLine(strippingNewline: Bool = true) -> String? Parameters strippingNewline true라면 newline..
stride(from:to:by:) 시작 value부터 to value까지의 시퀀스를 반환하는데, 마지막 value는 포함하지 않고 지정된 양만큼씩 뛰어넘는다. Declaration func stride(from start: T, to end: T, by stride: T.Stride) -> StrideTo where T : Strideable Example for i in stride(from: 1, to: 5, by: +1) { print(i) } //1 //2 //3 //4 -> 이처럼 마지막 인덱스틑 출력이 되지 않는다! 포함할 수는 없을까? stride(from:through:by:) 시작 value에서 마지막 value까지의 시퀀스를 만환하는데, 마지막 value를 포함하여 지정된 양만큼 뛰어..

더보기 알고리즘 문제풀이를 시작하며.. 단계별 풀이를 진행하며 초반에는 막힐 때마다 해당 내용에 대해 찾아보기로 하고 복잡한 알고리즘 문제를 풀기 전에는 내용에 대한 공부를 미리 하기로 한다. [ 10171 - 고양이 ] swift5 이후 버전에서는 #와 "의 조합으로 특수문자 표현이 가능하다. 여러 줄의 문자열을 String으로 변환할 때는 따옴표 세개(""")를 사용한다. let cat = #""" \ /\ ) ( ') ( / ) \(__)| """# [ 1000 - A+B ] swift는 project파일이나 playground에서 입력을 받을 수 없다. (샌드박스(https://zeddios.tistory.com/432) 때문.. 추후 정리 예정) command Line Tool에서 실행해야한다...
Class object의 템플릿. 데이터필드와 메소드 필드를 갖는다. object 클래스의 인스턴스 선지식..! OOP (Object Oriented Programming) 객체 지향 프로그래밍 문제를 여러 개의 객체 단위로 나누어 작업하는 것 공장에 설계도를 만들어(=클래스) 인스턴스(객체)를 찍어내는 방식. OOP는 절자치향(C언어와 같은)에 비해 사람의 사고방식처럼 유기적인 관계로 프로세스가 진행된다. OOP의 특징 1. Encapsulation(캡슐화) 객체의 특정한 목적을 위한 변수나 메소드를 하나로 묶는 것 클래스를 만들 때 추후 특정한 목적을 잘 수행할 수 있도록 변수와 메소드를 관련성있게 구성해야 한다. 캡슐화의 목적은 정보 은닉이다! * 정보 은닉이란? getter와 setter로 메서드..

예전에 했던 크롤링 관련 프로젝트를 다시해보는데, 다른 사이트에서는 되는데 특정 사이트에서 되지 않는 것을 발견했다. 그 사이트만 URL 끝부분에 html이 붙어있는 것을 발견해서 HTTP프로토콜에 대해 공부해보기로 한다! (이 문제가 아닐 수도..) HTTP 프로토콜이란? Request : client가 서버에 요청하는 것(이 경우 html을 요청) Response : 서버가 요청받은 것을 주는 것 protocol : 준수해야하는 규칙 -> 크롬 검사에서 Network에 각 name을 누르면 header를 확인할 수 있다. Request를 위한 메시지, Response를 위한 메시지로 구분되어 있다. 웹 브라우저가 웹서버에게 요청하는 Request header를 만들고 웹서버는 Response head..
[ 알고리즘? ] 프로그래밍 언어를 사용해 하나의 작업을 수행하는 방법에 대한 서술. 프로그래밍 언어와 독립적일 뿐만 아니라 알고리즘이 구현된 프로그램을 실행하는 기계와도 독립된 추상적인 실체. 알고리즘의 분석 *실행시간의 분석 알고리즘의 자원(resource: 실행시간, 메모리, 저장장치, 통신 등) 사용량을 분석. 시간 복잡도 실행 시간은 실행 환경에 따라 달라짐 ex) 하드웨어, 운영체제, 언어, 컴파일러 등 실행 시간을 측정하는 대신 연산의 실행 횟수를 카운트 연산의 실행 횟수는 입력 데이터의 크기에 관한 함수로 표현 데이터의 크기가 같더라도 실제 데이터에 따라 다름 ex) 최악의 경우 시간복잡도( worst-case analysis), 평균 시간복잡도(average-case analysis) 점..