본문 바로가기
728x90

분류 전체보기302

[Swift] 프로그래머스 체육복(lv. 1) [Swift] 프로그래머스 체육복(lv. 1) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42862 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있습니다. 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다. 이 두 가지 조건을 가볍게 보았다가 한 번 코드를 쓰고 엎었다. 여벌이.. 2023. 2. 8.
[Algorithm] 선택 정렬, 삽입 정렬 알고리즘(Swift 구현) [Algorithm] 선택 정렬, 삽입 정렬 알고리즘(Swift 구현) 정렬 알고리즘. 최근 Swift로 프로그래머스 알고리즘 문제를 풀어보고 있던 중, 정렬에 대한 궁금증이 도졌다. Swift의 내장함수 sorted()가 바로 Tim sort 방식으로 정렬을 한다고 하는데, 제대로 이해를 하지 못했다. 그래서 예전에 정렬 알고리즘을 얄팍하게 공부해서 한 번 포스팅 한 적이 있었지만, 이번엔 더 자세하게, 이해가 될 수 있을 정도로 알고리즘을 파헤쳐 보기로 하였다. 1. 정렬 알고리즘이 필요한 이유? 정렬(Sorting) : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 우리가 일상생활에서도 많이 사용하는 알고리즘이다. 어떤 것들을 차례대로 배치해놓아야 일의 순서가 쉬워지는 것들이 있다. 예를 들어.. 2023. 2. 7.
[Swift] 프로그래머스 로또의 최고 순위와 최저 순위(lv. 1) [Swift] 프로그래머스 로또의 최고 순위와 최저 순위(lv. 1) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 0은 당첨 번호로 맞춰놓거나 틀린 번호로 할 수 있다. 다른 말로 바꿔보자면, 0이 있는지 없는지에 따라서 Rank가 달라질 수 있다는 것. 리턴할 최고 순위와 최저 순위는 0이 포함된 갯수를 빼거나 더해서 나오게 된다. 순위는 참고로 숫자가 낮을 수록 높은 것이다. 이를 고려해서 반복문을 구성해야 한다. .. 2023. 2. 6.
[Swift] 프로그래머스 - 모의고사(lv. 1) [Swift] 프로그래머스 - 모의고사(lv. 1) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 다들 찍는 패턴이 다르기 때문에 하나의 패턴을 상수로 지정해주었다. 그런 다음 answer과 그 상수들을 비교하여 점수를 리턴해주고, 배열을 정렬해서 차례로 뽑아주면 되겠다는 생각을 했다. calculateScore 함수는 answers와 student를 인자로 받는다. answer는 전체 원소를 순회하고, student는 .. 2023. 2. 4.
[Swift] 프로그래머스 가장 가까운 같은 글자(lv. 1) [Swift] 프로그래머스 가장 가까운 같은 글자(lv. 1) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 현재 인덱스와 이전 인덱스를 잘 구분해서 계산하면 된다. comeout 이라는 array에는 한 번이라도 등장했던 Character를 집어넣는다. 이것과 비교하여 index 차이를 answer에 집어넣거나, -1을 집어넣는다. 등장한 것과 등장하지 않은 것을 잘 구분하면 된다. 3. 코드 import Founda.. 2023. 2. 3.
[Swift] 프로그래머스 [1차] 다트 게임(lv. 1) [Swift] 프로그래머스 [1차] 다트 게임(lv. 1) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 문제를 잘 이해하는 것이 중요했다. 1 ~ 9 사이의 순서에 따라 주어진 것을 정확하게 구현해내면 어려움 없이 구현할 수 있는 전형적인 구현 문제였다. dartResult를 한 Character로 끊어서 읽고, 숫자 또는 문자라면 그 안에서 적절하게 분기를 해주고, 만약 그 둘이 아니라면 * or # 이므로 그에 따라.. 2023. 2. 2.
728x90