스위프트

자주 쓰이는 고차함수 count 배열 내 갯수를 세어준다. var arr1: [String] = ["존", "펠릭스", "앤서니", "시나", "주니어"] var arr2: [String] = ["존", "펠릭스", "앤서니", "시나", "주니어"] print(arr1) // ["존", "펠릭스", "앤서니", "시나", "주니어"] print(arr2.count) // 5 min() & max() 배열 내 최솟값(최댓값)을 반환함 옵셔널로 반환되니 반드시 if let 또는 guard let. var numbers = [1,2,3] print(numbers.min()) // Optional(1) print(numbers.max()) // Optional(3) fitstIndex(of:) & lastIn..
문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 제한 사항 s는 길이가 1 이상, 100이하인 스트링입니다. 1차 고민 홀수와 짝수일 경우를 가장 먼저 생각해야한다. if와 else로 나누는 방법이 제일 깔끔할 것 같고 배열로 바꿔서 가운데 배열을 출력하면 되는 문제인 것 같다. 5의 경우 2.5니까 2로 인식될거고 0 1 2 3 4 중에서 2 출력이 맞고 4의 경우 2니까 0 1 2 3 중에서 나누기 2에다가 -1 먼저 출력 + 나누기 2 출력 하면 1 2 두 개만 출력 가능. 1차 코드 func solution(_ s:String) -> String { if s.count % 2 == 1 { return S..
학습 목표 최대 60초까지 Silder를 통해 설정 가능한 타이머를 만들어보기 60초라는 설정이 가능한 방법을 알기 Start 버튼이 눌렸을 때 Silder가 매 초 움직이면서 남은 시간을 표기하기 타이머 동작이 끝나면 알람이 울리도록 설정하기 Reset 버튼을 눌렀을 경우 즉시 초기화되며 첫 화면으로 돌아오기 1차 완성본 화면 기록으로 녹화한 장면이라 소리가 안들어간게 아쉽다... 스토리 보드 구성 가장 기본적인 스토리보드 구성이다. 단일 view Controller로 구성되었다. '타이머'라는 Label 추가 mainLabel은 Slider의 반응에 따라 유동적으로 초를 나타낼 영역 그리고 선을 나타내기 위해 view를 그리고 depth를 1로 주었다. 0초 Label과 60초 Label, Slide..
문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 1차 고민 맨 처음에는 while문으로 입력값인 n을 var num에 담아서 홀수 짝수마다 번갈아가며 arr에 담고 joined()를 통해서 문자열을 리턴하고자 했다. 그런데 생각해보니 3일 때는 수박수, 4일 때는 수박수박이 나와야하는데 내 방식대로 할 경우 3을 입력하면 박수박 이 리턴될 것이 뻔했다. 배열의 끝 인덱스부터 채우는 느낌으로 stack 개념을 활용한 배열을 사용했다면 할 수 있었겠지만 그렇게까지 비효율적으로? 라는 생각이 ..
단계별 github 연결하기 1. Git 초기화 git init 2. Git Repository 생성 Github 홈페이지에서 진행 3. Repository 연결 git remote add origin username@bitbucket.org/myname/myproject.git 4. 연결된 Repository 확인 git remote -v (fetch, push 총 두 줄이 뜨면 완료) 5. pull 받아 git history 동기화 git pull origin main 6. git add git add . (스테이지에 모든 파일을 올림) 7. git commit git commit -m "FirstCommit" (최초 커밋) 8. git push git push origin main (origin 저..
문제 설명 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]_b[0] + a[1]_b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) 제한사항 a, b의 길이는 1 이상 1,000 이하입니다. a, b의 모든 수는 -1,000 이상 1,000 이하입니다. 1차 고민 map을 사용해서 새로운 배열을 리턴해야겠다는 생각은 들었다. 그리고 그 모든 배열의 합을 더해야하는데 평소같으면 for문 돌려서 result에 더했겠지만 reduce를 사용해서 합을 내기로 했다. 1차 코드 import Foundation func solution(_ a:[Int], _..
문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 1차 고민 arr.count가 1이면 바로 return [-1]하면 될 것 같은데 문제는 나머지 계산 과정에서 배열의 인덱스를 제거하는 방법이 기억나지 않는다. 시작부터 구글링을 통해 여러 방법을 찾아보는데 특정 조건을 가지고 걸러낼 수 있는 filter라는 고차함수가 있었다. 제일..
오늘의 배움 오늘은 textField 다루는 방법에 대해서 공부했다. textField는 입력 자체를 OS에서 관리하는 부분이기 때문에 textField의 deligate(위임자)를 self( override된 viewDidLoad 자신)로 지정해야한다. 그리고 viewDidLoad에 보였던 setup() 함수의 내용은 이렇다. 보통 textField의 내용이나 모양을 건드리는건데 중요한 건 제일 아래 textField.becomeFirstResponder이다. textField를 첫 번째 응답자로 지정하게되면 사용자가 화면에서 가장 먼저 응답해야할 항목이 textField가 되기 때문에 키보드가 자동으로 올라오게된다. 이렇게 키보드가 내려간다! 물론 다시 textField를 터치하면 올라온다. 이후에 ..
문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있..
KBO Application 고민 1 문득 그런 생각이 들었다. 배경 색이 연하면 상관이 없겠지만 강력한 단색을 사용하는 팀의 경우 아래에 내용을 적어내기엔 가독성이 현저히 떨어질 것 같다는 생각. 그래서 제목 테두리 정도만 팀 컬러를 사용하고 나머지는 흰색으로 통일해야겠다! 해결 단계 1 상단에 팀 로고와 팀명이 쓰여지는 곳보다 조금 더 크게 label을 깔았다. (배경색을 일부만 변경하는 방법을 몰라서 Label을 사용하고 labelColor를 이용했다...ㅠ) 구속도 원하는 위치에 꼼꼼하게 잡고 해당 Label을 15번줄 backgroundLabel이라고 선언해주었다. 그리고 바꾸는 김에 viewDidLoad 내부가 너무 많아지는 것 같아서 View Controller와 똑같이 detailSetup..
sngsp
'스위프트' 태그의 글 목록 (4 Page)