programmers 11

[Programmers] 여행경로 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 1. 문제 이해하기 항상 "ICN" 공항에서 출발합니다. 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다. 주어진 항공권은 모두 사용해야 합니다. 만일 가능한 경로가 2..

Algorithm/Swift 2021.09.09

[Programmers] H-Index (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 1. 문제 이해하기 해당 문제는 이해만 제대로 했다면 어렵지 않게 풀이할 수 있습니다. 어떤 과학자가 발표한 논문 n 편 중, 자연수로 시작하는 인덱스 h를 기준으로 h이상 인용된 논문이 h 편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값 리턴 예시로 더 자세하게 설명하겠습니다. 2. 문제 풀이 생각하기 처..

Algorithm/Swift 2021.09.09

[Programmers] 단어 변환 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 1. 문제 이해하기 두 단어 begin, target, 단어의 집합 words가 주어집니다. begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 해당 조건으로만 단어를 변환할 수 있습니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수..

Algorithm/Swift 2021.09.07

[Programmers] 네트워크 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 1. 문제 이해하기 노드와 간선으로 이어져 있는 트리(네트워크)의 개수를 리턴하는 문제 컴퓨터의 개수 n은 1 이상 200 이하인 자연수 각 컴퓨터는 0부터 n-1인 정수로 표현 i번 컴퓨터와 j번 컴퓨터가 연결되어 있으면 computers[i][j]를 1로 표현 computer[i][i]는 항상 1 2. 문제 풀이 생각하기 처음에는 백준처럼 모든..

Algorithm/Swift 2021.09.07

[Programmers] 프린터 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 1. 문제 이해하기 대기목록에 있는 문서의 중요도 배열(priorities), 요청한 문서의 현재 위치(location)가 주어졌을 때, 요청한 문서가 몇 번째로 인쇄되는지 구하기 대기목록 배열 크기 1 이상 100 이하 인쇄 작업의 중요도는 1 ~ 9이며 클수록 중요하다. 2. 문제 풀이 생각하기 처음에는 문서의 위치와 우선순위를 해시 테이블로 만드려고 ..

Algorithm/Swift 2021.07.26

[Programmer] 짝지어 제거하기 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 1. 문제 이해하기 문자열이 주어졌을 때, 연속한 두 문자가 동일하면 제거하고, 제거 한 부분을 다시 앞 뒤로 이어주는 과정을 반복합니다. 이때, 모든 문자열이 제거되면 1, 하나라도 남아있으면 0 문자열의 길이는 1 이상 1,000,000 이하의 자연수 2. 문제 풀이 생각하기 문자열의 길이가 최대 1,000,000이 될 수 있기 때문에 ..

Algorithm/Swift 2021.07.16

[Programmers] 로또의 최고 순위와 최저 순위 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 1. 문제 이해하기 로또는 총 1~ 45까지의 숫자 중 6개 찍어서 맞추는 방식 로또 당첨 숫자(win_nums), 내가 찍은 숫자(lottos)가 주어졌을 때, 당첨 내용에 부합할 수 있는 가장 높은 순위와 낮은 순위를 배열로 출력 알아볼 수 없는 숫자(0)가 존재 2. 문제 풀이 생각하기 먼저 0이 아닌..

Algorithm/Swift 2021.07.10

[Programmers] 카카오 인턴십 - 경주로 건설 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 문제 설명에 앞서, 테스트 케이스 14, 24에서 막혀서 질문하기에 다른 분들..

Algorithm/Swift 2021.07.03

[Programmers] 2020 카카오 인턴십 - 보석쇼핑 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr Step 1. 문제 이해하기 gems 배열에는 보석들의 이름이 담겨있다. 모든 종류의 보석을 적어도 1개 이상 포함하면서 가장 짧은 연속하는 구간의 처음과 끝을 정수 배열로 출력 만약 가장 짧은 구간이 여러 개라면 시작 구간이 가장 작은 구간을 출력 배열의 크기는 최대 1 이상 100,000 이하 Step 2. 문제 풀이 생각하기 연속하면서 가장 짧은 구간이라고 해서 투 포인터를 떠올렸습니다. gems..

Algorithm/Swift 2021.07.02

[Programmers] 2020 카카오 인턴십 - 수식 최대화 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr Step 1. 문제 이해하기 숫자(999 이하)와 연산자('+', '-', '*')를 띄어쓰기 없이 포함한 문자열 변수 expression이 존재 문자열의 총길이는 3 이상 100 이하 연산자 우선순위를 임의로 설정하여 나온 우승상금(결괏값)의 절댓값이 가장 큰 값을 출력 Step 2. 문제 풀이 생각하기 연산자 우선순위 조합을 어떻게 구현할 것인지 ..

Algorithm/Swift 2021.07.02