본문 바로가기

분류 전체보기

(124)
위클리 챌린지 - 6주차_복서 정렬하기 https://programmers.co.kr/learn/courses/30/lessons/85002?language=swift 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr func solution(_ weights:[Int], _ head2head:[String]) -> [Int] { var results = [[Double]]() for i in 0 ..< weights.count { let result = head2head[i].map { $0 } // ..
Swift - UIPageViewController 스위프트에서 UIPageViewController를 사용하면 여러 ViewController들을 하나의 PageViewController로 보여 줄 수 있습니다. 간단하게 책장을 넘기듯이 스와이프를 하면서 다음, 이전 뷰컨트롤러로 쉽게 이동이 가능합니다. 먼저 세개의 뷰컨트롤러를 만들고 First, Second, Thrid 라고 스토리보드 ID를 설정해줬습니다. 먼저 pageViewControllers배열안에 PageViewController에서 사용할 ViewController들을 담아줍니다. newViewContoller함수는 String을 받아 ViewController의 StoryboadID를 찾아서 UIViewController로 쉽게 변환해주는 함수입니다. 그리고 viewDidLoad()에서 ..
프로그래머스 - 순위검색 programmers.co.kr/learn/courses/30/lessons/72412 "java backend junior pizza 300", "cpp frontend junior chicken 150" dfs함수에 [java, -], [backend, -], [junior, -], [pizza, -] 두번째 지원자도 마찬가지로 지원항목 + '-' 경우까지 추가해서 모든 경우의 수를 만들어준다. 그리고 언어, 직군, 경력, 소울푸드까지 문자열 키가 만들어진다면 해당 지원자의 점수를 파악해서 해당 키값에 추가해준다. 위 2가지 지원자의 모든 경우의 수를 모두 계산하면 ["cppfrontendjunior-": [150], "-frontend-chicken": [150], "javabackend-pizza..
Swift - 그라데이션 앱의 화면을 만들다가 보니 이미지 위에 텍스트를 보여줘야하는 경우가 존재하는데.. 만약 텍스트를 어두운색으로 하면 배경에 어두운 이미지가 들어가면 텍스트가 안보이고 그렇다고 밝은색으로 하면 배경이 밝은 경우 또 잘 안보입니다. 그런경우에 텍스트필드 또는 레이블의 백그라운드에 색을 줘서 글씨를 더 잘 보이게 해줄 수도 있지만 어떤경우에 UI와 별로 어울리지도 않고 안 이쁠 수도 있습니다. 그런경우 그라데이션을 주면 텍스트를 자연스럽게 잘 보여지게 할 수 있습니다. 먼저 그라데이션은 CAGradientLayer라는 클래스를 이용해서 만들 수 있습니다. 그라데이션에 스타일을 줄 수 있는 프로퍼티는 이렇게 존재합니다. 먼저 기본적인 그라데이션을 그려보면 let gradient = CAGradientLayer()..
프로그래머스 - 메뉴리뉴얼 programmers.co.kr/learn/courses/30/lessons/72411?language=swift 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 아직까지 알고리즘 푸는 기술이 너무너무 부족하단 걸 문제를 풀때마다 느낀다. 한 문제에 몇시간씩 걸리니 ㅠㅠ 근데 이제 조금씩 어떤문제를 보면 이렇게 풀어보면 되겠다는 게 보이니까 조금 더 노력할 마음도 생긴다 문제를 보고 dfs로 모든 경우를 탐색해서 풀어봐야 겠다고 생각하고 일단 계속 반복해서 모든 경우의 수를 구했다. 그리고 그 경우의 수를 조건..
프로그래머스 - 다트게임 programmers.co.kr/learn/courses/30/lessons/17682?language=swift 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 다트게임 점수구하기! 기본적으로 점수는 3개로 구성 -> 숫자는 세개 3가지 영역 S, D, T -> 각 1제곱, 2제곱, 3제곱 보너스 상 *, # -> *는 이전 점수, 지금 점수 * 2, #는 지금 점수 * -1 일단 배열에 각 점수별로 계산을 해두고 마지막에 reduce로 합치기로 생각하고 반복문을 하나 돌려서 점수를 하나씩 배열에 담고 문자열을 만나면 담긴 점수를 가지고 계산 if 문에서 else 로 바로바로 점수를 배열에 담았더니 10과 같은 숫자는 ["1", "0"] 이렇게 담기길래 number라는 변수를 하..
프로그래머스 - 실패율 programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 먼저 stages를 반복문을 돌려서 해당 스테이지에 도달한 사람이 몇번인지 계산을 해준다 만약 끝까지 모두 깬 사람이 있다면 그 스테이지는 추가하지 않고 처음부터 마지막 스테이지까지 도달한 플레이어 수를 1씩 늘려준다 예를들어 [2, 1, 2, 6, 2, 4, 3, 3] 문제의 배열에서 3번째 2 값을 기준으로 보면 만약 반복문을 통해 2를 만나면 이 유저는 2번 스테이지에 ..
Swift - zip 함수 행렬의 덧셈 문제를 풀다가 zip함수를 알게되어 zip함수에 대해 정리해보려 합니다. 기본적으로 zip함수는 Creates a sequence of pairs built out of two underlying sequences. 두 개의 기본 시퀀스로 구성된 일련의 쌍을 생성합니다. 라고 설명되어있는데 시퀀스 2개를 파라미터로 받아 Zip2Squence를 반환해준다 Zip2Squence가 두 개의 기본 시퀀스로 구성된 쌍이다 시퀀스 2개를 zip한다고 Zip2Sequence인가??? .. 예제를 보게되면 두 개의 시퀀스를 순서대로 tuple 쌍으로 리턴해준다. 만약 두개의 시퀀스가 길이가 다르면 작은 값이 맞춰서 튜플 쌍이 만들어진다. let words = ["one", "two", "three", "f..