본문 바로가기

알고리즘85

[Swift] 백준 2630번 색종이 만들기 링크: https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 이 문제의 풀이는 핵심 풀이는 '모두 같은 색상이 아니라면 1/4씩 쪼개 4번을 더 탐색한다.' 입니다. 1. 전부 같은 색상인 경우 array의 색상의 갯수를 +1합니다. 2. 전부 같은 색상이 아닌 경우 1/4씩 쪼개 4번의 탐색을 진행합니다. isSameColor 함수의 경우 reduce로도 계산이 가능하지만 성능 향상을 기대하기 위해 for문으로 작성하였습.. 2022. 5. 11.
[Swift] 프로그래머스 - 카카오 주차 요금 계산 문제: https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [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 이 문제의 풀이는 1. 총 주차 시간 구하기 2. 주차 시간에 따른 요금 계산하기 1. 총 주차시간 구하기 enterTime 딕셔너리를 통해 입차 시간을 기록합니다. 출차할 때에.. 2022. 4. 20.
[Swift] 프로그래머스 - 카카오 k진수에서 소수 개수 구하기 문제: https://programmers.co.kr/learn/courses/30/lessons/92335 코딩테스트 연습 - k진수에서 소수 개수 구하기 문제 설명 양의 정수 n이 주어집니다. 이 숫자를 k진수로 바꿨을 때, 변환된 수 안에 아래 조건에 맞는 소수(Prime number)가 몇 개인지 알아보려 합니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소 programmers.co.kr 이 문제의 풀이 단계는 1. n을 k진수로 변환 2. 주어진 조건에 따라 숫자들을 모아놓고 3. 숫자가 소수인지 판별 주어진 조건은 다음과 같습니다. 0P0처럼 소수 양쪽에 0이 있는 경우 P0처럼 소수 오른쪽에만 0이 있고 왼쪽에는 아무것도 없는 경우 0P처럼 소수 왼쪽에만 0이 있고 오른쪽에는 아무것.. 2022. 4. 20.
[Swift] 백준 2231번 분해합 문제: https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라고 합니다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 즉, 입력값 N이 분해합인 M을 찾으면 되는 문제입니다. 1부터 N까지 돌며 가장 작은 분해합 M을 찾습니다. 분해합은 String으로 한번 감싸고 map으로 한자리씩 끊어서 Int형으로 만들어주고 더했습니다... 2022. 4. 13.
2022 SK ICT 2차 코딩테스트 후기 2차 코딩테스트는 총 4문제였습니다. 1차때는 테스트 결과가 안나왔는데 2차때는 정확성 테스트 결과는 볼 수 있었습니다. 주관적인 문제의 유형은 다음과 같습니다. 1. 문자열 2. 구현 3. 트리? 4. 구현? 이번에도 1~2번은 쉬웠으나 3~4번이.. ㅎㅎ 1번 푸는데에 30분, 2번에 1시간 반, 3~4번은 1시간정도 생각해보다 답이 안 나올 거 같아서 조기종료했습니다. 3, 4번 푸신 분은 풀이 댓글로 알려주시면 감사하겠습니다! 2022. 3. 23.
[Swift] 백준 1475번 방 번호 링크: https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 각 숫자별 사용된 횟수를 배열에 더합니다. 이때 6이나 9는 6이나 9 중 더 적은 횟수에 더합니다. 만약 669를 예시로 들면 i가 6일 때 count[6] = 1, count[9] = 0 i가 6일 때 count[6] = 1, count[9] = 1 // 9를 회전해서 6으로 씀 i가 9일 때 count[6] = 1, count[9] = 2 따라서 정답은 2가 됩니다. import Foundation let N = readLine()!.map { Int(String($0))! } //.. 2022. 3. 21.