분류 전체보기(228)
-
[알고리즘] Swift -프로그래머스 연습문제 #181832(정수를 나선형으로 배치하기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 양의 정수 n이 주어질 때 n * n배열에서 1부터 n의 제곱까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원배열을 리턴하는 문제이다. 풀이 과정 n=4일때, 4 * 4 = 16 1부터 16까지의 수를 나선형으로 입력한 표이다. 출력값이 [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]] 이다. 0으..
2023.05.30 -
[알고리즘] Swift -프로그래머스 연습문제 #178871(달리기 경주)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/178871 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 해설진은 선수들이 자기 바로 앞의 선수를 추월할 때 추월한 선수의 이름을 부른다. 예를 들어 1등부터 3등까지 mumu, soe, poe 선수들이 순서대로 달리고 있을 때 해설진이 seo 선수를 불렀다면 1등인 mumu 선수를 추월했다는 뜻이다. 즉 seo 선수가 1등, mumu 선수가 2등으로 바뀐다. 선수들의 이름이 1등부터 현재 등수 순서대로 담긴 배열과 해설진이 부른 이름이..
2023.05.30 -
[알고리즘] Swift -프로그래머스 연습문제 #140108(문자열 나누기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 문자열 s가 입력되었을 때 다음 규칙을 따라서 이 문자열을 여러 문자열로 분해하려고 한다. 먼저 첫 글자를 읽는다. 이를 x라고 가정한다. 이제 문자열을 왼쪽에서 오른쪽으로 읽어나가면서 x와 x가 아닌 다른 글자들이 나온 횟수를 각각 센다. 처음으로 두 횟수가 같아지는 순간 멈추고, 지금까지 읽은 문자열을 분리한다. s에서 분리한 문자열을 빼고 남은 부분에 대해서 이 과정을 반복한..
2023.05.28 -
[알고리즘] Swift -프로그래머스 연습문제 #92334(2022 카카오 블라인드_신고 결과 받기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/92334 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 한다. 각 유저는 1번에 1명의 유저를 신고할 수 있다. 신고 횟수는 제한이 없다. 서로 다른 유저를 계속 신고할 수 있다. 한 유저를 여러 번 신고할 수 있지만 동일한 유저에 대한 신고 횟수를 1회로 처리된다. k번 이상 신고된 유저는 게시판 이용이 정지되며 해당 유저를 신고한 모든 유저에게 정지 사실을 ..
2023.05.28 -
[알고리즘] Swift -프로그래머스 연습문제 #181835(조건에 맞게 수열 변환하기 3)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181835 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 정수 배열 arr 과 k가 주어질 때 k가 홀수하면 arr의 모든 원소에 k를 곱하고 k가 짝수라면 arr의 모든 원소에 k를 더한다. 이러한 변환을 마친 후의 결과를 리턴하는 문제이다. 풀이 import Foundation func solution(_ arr:[Int], _ k:Int) -> [Int] { return k % 2 == 0 ? arr.map { $0 + k } : ..
2023.05.25 -
[알고리즘] Swift -프로그래머스 연습문제 #181881(조건에 맞게 수열 변환하기 2)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181881 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 arr 배열이 주어질 때 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고 50보다 작은 홀수라면 2를 곱하고 다시 1을 더한다. 이러한 작업을 x번 반복한 결과인 배열을 arr(x)일 때 arr(x) = arr(x+1)인 x가 항상 존재한다. 이러한 x 중 가장 작은 값을 리턴하는 문제이다. 풀이 import Foundation func solution(_ arr:[I..
2023.05.24 -
[알고리즘] Swift -프로그래머스 연습문제 #181882(조건에 맞게 수열 변환하기 1)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181882 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 정수 배열이 주어질 때 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고 50보다 작은 홀수라면 2를 곱합니다. 풀이 import Foundation func solution(_ arr:[Int]) -> [Int] { return arr.map { if $0 >= 50 && $0 % 2 == 0 { return $0 / 2 } if $0 < 50 && $0 % 2 =..
2023.05.24 -
[알고리즘] Swift -프로그래머스 연습문제 #181873(특정한 문자를 대문자로 바꾸기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/181873 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 영소문자로 이루어진 문자열과 영소문자 1글자로 이루어진 문자열이 주어질 때 1글자에 해당하는 모든 글자를 대문자로 바꾼 문자열을 리턴하는 문제이다. 풀이 과정 alp에 해당하는 단어를 찾아서 대문자로 변경하면 된다. 풀이 import Foundation func solution(_ my_string:String, _ alp:String) -> String { return my_st..
2023.05.24 -
[알고리즘] Swift -프로그래머스 연습문제 #142086(가장 가까운 같은 글자)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 문자열 s 가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서 자신과 가장 가까운 곳에 있는 같은 글자가 어디있는지 찾고 싶다. 예를 들어 s = "banana" 일 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음으로 진행할 수 있다. b는 처음에 나왔기 때문에 자신의 앞에 같은 글자가 없다. 이는 -1로 표현한다. a는 처음에 나왔기 때문에 자신의 앞에 같은 글..
2023.05.24 -
[알고리즘] Swift -프로그래머스 연습문제 #147355(크기가 작은 부분 문자열)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 숫자로 이루어진 문자열 t와 p가 주어질 때 t에서 p와 길이가 같은 부분 문자열 중에서 이 부분 문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 구하는 문제이다. 예를 들어 t = 3141592 이고 p = 271 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592 이다. 이 문자열이 나타내는 수 중 271보다 작거나..
2023.05.23 -
[알고리즘] Swift -프로그래머스 연습문제 #150370(2023 카카오 블라인드_개인정보 수집 유효기간)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 1~n번으로 분류된 개인정보 n개가 있다. 약관마다 유효기간이 정해져있다. 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려고 한다. 모든 달은 28일까지 있다고 가정한다. 예를 들어 A라는 약관의 유효기간이 12달이고 2021년 01월 05일에 수집되었다면 2022년 01월 04일까지 보관가능하고 2022년 01월 05일부터는 파기해야할 개인정보이다. 오늘 날짜와 유효기간을 담은..
2023.05.22 -
[알고리즘] Swift -프로그래머스 연습문제 #159994(카드 뭉치)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는 지 알고 싶다. 원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용한다. 한 번 사용한 카드는 다시 사용할 수 없다. 카드를 사용하지 않고 다음 카드로 넘어갈 수 없다. 기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없다. 예를 들어 ["i", "drink", "water"] ["want", "to"]가 적혀있..
2023.05.19 -
[알고리즘] Swift -프로그래머스 연습문제 #161989(덧칠하기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있다. 벽에 포스터를 게시하기 위해 테이프로 붙였다가 철거할 때 페인트가 벗겨진다. 이를 덧칠하기로 했다. 전체를 새로 칠하는 것이 아닌 구역을 나누어 일부만 페인트를 새로 칠하려 한다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 외쪽부터 순서대로 1번부터 n번까지 번호를 붙였다. 그리고 페인트를 다시 칠해야할 ..
2023.05.18 -
[UIKit] Thread 16: "*** +[NSURLComponents setPercentEncodedQueryItems:]: invalid characters in percentEncodedQueryItems"
🧸 시작 Thread 16: "*** +[NSURLComponents setPercentEncodedQueryItems:]: invalid characters in percentEncodedQueryItems" 에러 발생 setPercentEncodedQueryItems: 인코딩된 백분율의 잘못된 문자항목 쿼리 유요하지 않은 문자가 쿼리항목으로 가서 에러가 발생한 경우이다. 🧸 에러 발생한 기존 코드 func asURLRequest(completion: @escaping (URLRequest) -> Void) { guard var urlComponents = URLComponents(string: Constants.APIURL.KakaoAPI.searchURL) else { return } urlComp..
2023.05.06 -
[UIKit] 테이블뷰 섹션 타이틀 폰트 설정
🧸 시작 변경 전 변경 후 🧸 코드 var tableViewSectionHeader = ["즐겨찾기", "내 주변 병원"] extension HomeViewController: UITableViewDelegate, UITableViewDataSource { //섹션의 개수 func numberOfSections(in tableView: UITableView) -> Int { return tableViewSectionHeader.count } //섹션의 타이틀 텍스트 func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return tableViewSectionHeader[section] } //..
2023.05.05 -
[SwiftUI] SwiftUI 기초 -공식 튜토리얼(3)
🧸 이전 글 [SwiftUI] SwiftUI 기초 -공식 튜토리얼(2) 🧸 이전 글 [SwiftUI] SwiftUI 기초 -공식 튜토리얼(1) 🧸 시작 SwiftUI 로 앱 만들기 파일 만들기 Interface -> SwiftUI 로 변경하고 Next 🧸 Inspector 로 수정하기 command + 클릭해서 Show SwiftUI Inspector... 를 클릭 nlestory.tistory.com 🧸 시작 ✔️ 사용자 입력 처리 사용자는 자신이 좋아하는 장소에 플래그를 지정하고 목록을 필터링하여 자신이 좋아하는 장소만 표시할 수 있다. 이 기능을 만드려면 사용자가 자신의 즐겨찾기만 집중할 수 있도록 목록에 스위치를 추가한 다음 사용자가 랜드마크를 즐겨찾기로 표시하기 위해 탭하는 변 모양의 버튼을 추..
2023.05.04 -
[SwiftUI] SwiftUI 기초 -공식 튜토리얼(2)
🧸 이전 글 [SwiftUI] SwiftUI 기초 -공식 튜토리얼(1) 🧸 시작 SwiftUI 로 앱 만들기 파일 만들기 Interface -> SwiftUI 로 변경하고 Next 🧸 Inspector 로 수정하기 command + 클릭해서 Show SwiftUI Inspector... 를 클릭하면 해당 화면이 나오게 되는 데 여기에서 간편하 nlestory.tistory.com 🧸 시작 ✔️ 목록 및 네비게이션 구축 이전 글에 이어지는 내용으로 이번 튜토리얼에서는 모든 랜드마크에 대한 정보를 표시할 수 있는 보기를 만들고 사용자가 랜드마크에 대한 상세 보기를 보기 위해 누를 수 있는 스크롤 목록을 동적으로 생성한다. 🧸 랜드마크 모델 만들기 이전에는 하드코딩으로 정보를 입력했다면 이번에는 데이터를 저..
2023.05.04 -
[SwiftUI] SwiftUI 기초 -공식 튜토리얼(1)
🧸 시작 애플 디벨로퍼 공식 홈페이지에 있는 튜토리얼을 진행할 것이다. ✔️ 뷰 생성 및 결합 랜드마크의 세부 정보를 표시하는 뷰를 빌드하는 것으로 시작한다. 뷰를 배치하기 위해서 스택을 사용하여 이미지 및 텍스트 뷰를 구성한다. 지도를 추가하기 위해서 MapKit도 추가한다. 🧸 새 프로젝트 만들기 및 캔버스 탐색 SwiftUI 로 앱 만들기 파일 만들기 Interface -> SwiftUI 로 변경하고 Next 🧸 Inspector 로 수정하기 command + 클릭해서 Show SwiftUI Inspector... 를 클릭하면 해당 화면이 나오게 되는 데 여기에서 간편하게 변경할 수 있다. 아니면 스토리보드에서 사용하듯이 오른쪽 인스펙터화면을 늘려주면 간편하게 속성을 변경할 수 있다. 오른쪽에 보..
2023.05.03 -
[알고리즘] Swift -프로그래머스 연습문제 #67256(2020 카카오 인턴십_키피드 누르기)
문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 스마트폰 키패드에는 숫자들이 적혀있다. 왼손과 오른손 엄지손가락을 이용하여 숫자를 입력하려고 한다. 맨 처음 왼손 엄지손가락은 * 키패드, 오른손 엄지손가락은 # 키패드 위치에서 시작한다. 엄지손가락은 상하좌우 4가지 방향으로 이동할 수 있다. 키패드 한 칸 이동은 거리 1이다 왼쪽 3개의 숫자 1,4,7 은 왼손 엄지손가락을 사용한다. 오른쪽 3개의 숫자 3,6,9 는 오른손 엄지..
2023.04.22 -
[UIKit] Thread 1: "-[NSLayoutConstraint center]: unrecognized selector sent to instance 0x6000030d12c0"
🧸 시작 Thread 1: "-[NSLayoutConstraint center]: unrecognized selector sent to instance 0x6000030d12c0" 이러한 에러 발생 NSLayoutConstraint center 를 사용하고 싶은 데 연결된 인스턴스가 그것을 찾을 수 없다는 뜻 ? 째든 이 에러는 컴포넌트연결이 잘못되었다는 뜻 내가 사용하고자하는 컴포넌트와 연결이 되었는 지 잘 확인해보면 된다. 오른쪽 창에서 자신이 원하는 것과 연결이 되었는 지 확인한다. UIViewController 에서도 왼쪽 동그라미가 채워졌는 지 확인하고 채운 것이 내가 원하는 것과 연결이 잘 되었는 지 확인한다. 스토리보드를 사요하다보면 컴포넌트들이 너무 많아져서 실수하는 것 같다 ..
2023.04.06