본문 바로가기

전체 글245

[프로그래머스] 순위 검색 (C++, Swift) https://programmers.co.kr/learn/courses/30/lessons/72412?language=swift [Int] { makeInfoDic(info) sortInfoDicValues() let result:[Int] = makeResult(query) return result } func makeInfoDic(_ infos:[String]) { for info in infos { var infoToArray:[String] = info.components(separatedBy:" ") let applicantScore:Int = Int(infoToArray.last ?? "0") ?? 0 infoToArray.removeLast() addApplicantInfoToInfoDic(.. 2022. 3. 16.
[프로그래머스] 양궁대회 (Swift) (스터디) https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 1. 적용 알고리즘과 문제 설명 적용 알고리즘 : dfs 깊이 우선 탐색 문제 설명 어피치와 라이언이 양궁 시합을 한다. 점수는 과녁의 점수 영역에 누구의 화살이 더 많이 있는지에 따라 더 많이 맞힌 사람이 그 점수를 얻는다. 만약에 동일한 개수로 맞혔다면 어피치가 점수를 얻는다. 어피치의 결과판이 주어진다. 이때 라이언이 어떻게 경기를 해야 (각 점수영역에 화살을 .. 2022. 3. 11.
[프로그래머스] 주차 요금 계산 (Swift) https://programmers.co.kr/learn/courses/30/lessons/92341?language=swift 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr kakao 2022 blind recruitment 기본 시간, 기본 요금, 단위 시간, 단위 요금이 주어지고 차량의 입차, 출차 시간이 시간의 순서대로 담긴.. 2022. 3. 10.
[프로그래머스] k진수에서 소수 개수 구하기 (Swift) https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr kakao 2022 블라인드 코딩테스트 십진수 n을 k진수로 변환한 숫자 j가 있다고 하자. j를 이루는 각 자리수를 0으로 구분지어 얻을 수 있는 수 중 소수인 수의 개수를 구하는 문제 접근방법 우선 n을 k진수로 변환한다. 그런데 Int가 아니라 자리수를 순서대로 담은 String으로 변환한다. getBas.. 2022. 3. 8.
[프로그래머스] 신고 결과 받기 (Swift) https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 카카오 2022 블라인드 코딩테스트 딕셔너리와 배열을 적절히 잘 활용해서 푸는 구현 문제 이름이 담긴 배열, "신고자 피신고자"가 담긴 배열, 자연수 K가 주어진다. K번 이상 신고 당한 이용자는 이용이 정지되며, 이용자를 신고한 이용자에게 모두 메일이 1회 발송된다. 이용자는 무제한으로 신고할 수 있지만, 같은 이용자에 대한 신고는 중복되어도 1회로 취.. 2022. 3. 8.
클린코드 (로버트 C.마틴) 클린코드 (로버트 C.마틴) 솔직히 11,13,14장은 잘 읽었다고는 못하겠다. 다시 읽어봐야할 것 같고 그만한 가치도 있다고 생각한다. 깨끗한 코드를 왜 작성해야하는지 그 중요성에 대해서 하도 많은 잔소리를 들은 기분이다. 동의하는 바이고 지향하는 바이다. 프로그래밍이 공예에 가까우며 장인정신이 필요하다는 말에 크게 공감한다. 내 요즘 생각과 맞아떨어져서 그 말이 더 와닿았다. 왜 깨끗한 코드를 작성해야하는지와 (사실 그냥 강조만 한 기분이지만..) 깨끗한 코드를 작성하는 몇가지 방법론에 대해 알려주는 책이다. 개발자가 될거라면 꼭 읽어봤으면 좋을 책이지만 복잡한 프로그램 하나 정도는 스스로 짜본 사람에게 더 적합하다. 개발을 목적으로 코드를 어느정도 짜본 사람이라면 단순히 돌아가는 코드가 아닌 깨끗한.. 2022. 3. 8.
스위프트 프로그래밍 (야곰) 면접보고 나서 정말 스위프트 이해가 필요하다고 느꼈을 때 딱 적절했던 책. 스위프트로 앱을 만들줄만 알았지 정말 모르는 부분이 많았다는걸 느꼈다. 그리고 이 책을 통해 많이 알게 되어서 반성도 하면서 스위프트를 더 잘 쓸 수 있을 것만 같은 이..느낌. 스위프트 언어만의 특징이 잘 설명되어 있어 좋았다. 기초적인 개념에 대한 설명이 자세하지는 않아서 프로그래밍 언어를 하나 이상 다룰줄 알고, 스위프트 사용 경험이 있는(있으면 좋은) 사람에게 추천한다. C, C++, Java(객체지향면에서)와 swift를 비교해서 설명하는 부분이 책 중간중간 있다. (몇마디로 설명할 거 한단어로 이해할 수 있어서 오히려 좋았음) 프로토콜 지향 패러다임 + 함수형 패러다임 + 객체지향 패러다임이 합쳐진 그러면서도 C언어를 .. 2022. 3. 8.
[프로그래머스] 큰 수 만들기 (Swift) (스터디) 1. 적용 알고리즘과 문제 설명 그리디 문제 정수로 된 문자열이 주어지고, 자연수 k가 주어지면 정수 문자열에서 k개의 문자를 제거하여 얻을 수 있는 수 중 가장 큰 수를 구하는 문제 문자열에서 문자를 제거하는 것이기 때문에 문자열의 순서는 보존되어야 한다. 접근방법 큰 수를 얻는게 목적인 만큼, 앞자리 수가 커야한다. 스택 하나를 두고, k개의 카드(앞으로 문자를 제거하는 걸 카드라고 표현한다)가 남아있는 한 새로 들어갈 수가 현재 스택의 맨 위의 수보다 커야한다.는 로직이면 가장 큰 수를 얻을 수 있다. 2. 코드에 대한 설명 이걸 코드로 설명하면 k가 0보다 클 때까지는, 스택의 맨 위의 수 >= 새로 들어갈 수 를 만족할 때 까지 스택에서 원소를 뺀다. 그리고 뺄 때마다 k를 1감소 시킨다. im.. 2022. 3. 6.
[프로그래머스] 빛의 경로 사이클 (C++) https://programmers.co.kr/learn/courses/30/lessons/86052 코딩테스트 연습 - 빛의 경로 사이클 각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진 programmers.co.kr level 2 구현 (배열) 우선 사이클에 대해서 이해가 잘 안돼서 블로그를 찾아보고 이해했다. (역시 국어문제인가) 사이클은 같은 노드, 같은 방향을 다시 만났을 때 사이클이 이루어진다. 접근방법 모든 노드에서 갈 수 있는 모든 방향으로 경로가 뻗어나간다. 이를 위해 3중 for문을 돌려 각 노드의 각 방향으로 출발하는 (이름만)d.. 2022. 3. 5.
[프로그래머스] 소수찾기 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42839?language=swift 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr level 2 dfs(완전 탐색) 한자리 숫자 여러개로 이루어진 문자열이 주어지고, 종이 조각 하나에 한자리 숫자가 적혀서 흩어져있는 상황이다. 이들을 적절히 조합하여 만들 수 있는 소수의 개수를 반환하는 문제. 즉, 문자열 -> 한자리 숫자들의 배열. 로 만들고 숫자들의 가능한 순열을 구해야 한다. 그렇게 나온 수를 소.. 2022. 3. 5.
[프로그래머스] 멀쩡한 사각형 (Swift) https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr level 2 구현 (최대공약수 & 수학) 직사각형의 가로,세로 크기가 주어지고, 이 직사각형을 구성하는 넓이가 1(1*1) 사각형 중에 대각선이 지나가는 사각형을 제외한 작은 사각형들의 넓이의 합을 반환하는 문제이다. 접근방법 간단해 보였는데 어려웠다. 우선 대각선이 사각형들의 꼭짓점과 만나는 점을 기준으로 작은 사각형으로 분리해야 .. 2022. 3. 3.
[프로그래머스] 큰 수 만들기 (Swift) https://programmers.co.kr/learn/courses/30/lessons/42883?language=swift 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr level 2 큰 수 만들기 (그리디) 정수로 된 문자열이 주어지고, 자연수 k가 주어지면 정수 문자열에서 k개의 문자를 제거하여 얻을 수 있는 수 중 가장 큰 수를 구하는 문제 문자열에서 문자를 제거하는 것이기 때문에 문자열의 순서는 보존되어야 한다. 접근방법 큰 수를 얻는게 목적인 만큼, 앞자리 수가 커야한다. 스택 하나를 두고, k개의 카드(앞으로 문자를 제거하는 걸 카드라고 표현한다)가 남아있는 한 새로 들어갈 수가 현재 스택의 맨 위의 수보다 커야한다.는 로직이면 가장 큰 수를 얻을 수 있다. 오답노트 .. 2022. 3. 2.