본문 바로가기

코딩테스트38

백준 1508 - 레이스 - swift https://www.acmicpc.net/problem/1508 1508번: 레이스 첫째 줄에 N, M, K가 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, M은 10,000보다 작거나 같다. 또, K는 2보다 크거나 같고, 50보다 작거나 같다. 둘째 줄에 심판이 있을 수 있는 K개의 위치가 주 www.acmicpc.net 주어진 조건을 보면 심판들은 정해진위치에만 서있을 수 있다. 정해진위치( K )의 개수는 최대 50개이다. 그렇지만 심판들( M )의 개수는 최대 만개이다. 여기서 알수있는 사실은, M이 K보다 크거나같다면, 무조건 특정위치에 여러명의 심판들이 존재할수밖에 없다는 사실이다. 이 경우에 답은 무조건 1로 채워진 문자열이여야할 것 이다. 여기서 어떻게 접근해야할까, 정.. 2021. 6. 23.
백준 1459 - 걷기 - swift https://www.acmicpc.net/problem/1459 1459번: 걷기 세준이는 학교에서 집으로 가려고 한다. 도시의 크기는 무한대이고, 도시의 세로 도로는 모든 정수 x좌표마다 있고, 가로 도로는 모든 정수 y좌표마다 있다. 세준이는 현재 (0, 0)에 있다. 그리고 ( www.acmicpc.net 브론즈1이지만 생각보다 고민을 요한다. 그렇기때문에 정답률이 20%임을 보여주는 것 같다. 우선 문제의 X,Y의 범위가 최대 10억이므로, 이를 효율적으로풀지않는다면 위험하다. 그래서 효율적으로 푸는 ( 그리디 ) 방법이 필요한데, 기본적인 수학지식을 필요로한다. 두 점사이의 거리를 구하는 방정식을 요구하는것도 아니다. 문제의 해법은 특정점을 가기위해 최소비용이 얼마인지를 깨닫는 것이다. 시작지.. 2021. 6. 23.
프로그래머스 - [1차] 비밀지도 - swift https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 간단한 문제다. 두 숫자를 OR 연산하여 1인경우는 #으로 0인경우는 빈칸으로 변환하여 반환하면된다. Swift에서는 숫자를 진수로 표현하게해주는 String 이니셜라이저가 있다. 이를 활용하면 한줄로도 작성이 가능하다. func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] { return zip.. 2021. 6. 22.
백준 15961 - 회전초밥 - swift https://www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 우선 N이 최대 3백만이면서 시간제한이 1초이다. 백준에서 Swift로 풀경우 종종 입력값이 백만개를 넘는경우가 종종있는데, 더불어 시간제한이 1초라면 시간초과나기 십상이다. 그러므로, 라이노님의 버퍼를 이용한 빠른 readLine을 활용해야한다. https://gist.github.com/JCSooHwanCho/30be4b669321e7a135b84a.. 2021. 6. 22.
LeetCode - 17. Letter Combinations of a Phone Number - swift https://leetcode.com/problems/letter-combinations-of-a-phone-number/ Letter Combinations of a Phone Number - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 간단한 조합문제이다. 2~9까지 각 해당하는 문자들이 존재한다. 2~9 인덱스를 활용하기위해 미리 문자배열들을 만들어두었다. 각 인덱스를 통해서 재귀함수로 조합을 뽑아낸다. class Solution { var list = .. 2021. 6. 17.
LeetCode - 20. Valid Parentheses - swift https://leetcode.com/problems/valid-parentheses/ Valid Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 기본적인 자료구조인 Stack을 이용하는 문제이다. 주어진 s문자열을 하나씩 탐색하는데, ( , { , [ 인경우에는 무조건 stack메모리에 추가해준다. 그외의경우에는 추가하지않는데, 이때, stack메모리의 마지막원소와 같은 bracket인지를 판별해야한다. 맞다면 마지막원소를 삭제하고, 그.. 2021. 6. 16.