[프로그래머스/Swift] 프렌즈4블록
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전에 풀었던 뿌요뿌요와 비슷한 문제! 여기선 겹칠 수 있기 때문에 조금 다르게 구현해야 했다. 일단 전체적인 흐름은 두 가지고 나뉜다. 1. 2x2 블록 없애기 2. 밑으로 내리기 2x2를 찾아내기 위해 사용한 건 visited 부울 2차원 배열이다. 여기서 사라질 애들은 true로 변경해 준다. 겹치는 애들이 있기 때문에 여기서 "."(빈공간)로 변경하면 적절한 답이 나오지 않는다. while문..
[프로그래머스/Swift] 오픈채팅방
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현문제였다. 간단히 풀 수 있는 문제! Message 구조체를 만들어줬다. 안에는 아이디와 Enter인지 Leave인지에 대한 부울 변수가 저장된다. 이 구조체는 나중에 출력해줄 때 사용하려고 만들었다. 누가 들어왔는지 여기에 넣어주고 모든 record를 확인하고 난 뒤에 이 메시지 배열 기록을 보고 출력! dictionary에는 오픈채팅방에 들어온 사람들을 기록하는 것이다. 닉네임을 바꿨다면 ..
[프로그래머스/Swift] 주차 요금 계산
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 구현문제인 것 같다. 차근차근해야 할 것을 정리하고 코드를 짜면 풀리는 문제! 대신 조건들을 확인할게 꽤 있어서 시간이 좀 걸렸드아 문제를 풀면서 정리하면서 한 것인데 꽤... 잘된 거 같아서 올려본다ㅎ 쉽게 정리하자면 1. 시각/차량번호/입출 분리하기(split(separator:)) 2. IN이라면 dictionary에 intime 업데이트 3. OUT이라면 intime과 outtime를 사용..
[프로그래머스/Swift] 뉴스 클러스터링
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제를 보면 알 수 있듯이... 딱 봐도 쉬운 문제였다. 2 글자씩 떼어내서 그 원소들로 교집합이랑 합집합의 값을 구해서 결괏값을 출력하면 된다. 그런데 계속 안풀려서 결국 다음날로 넘겼다...... 문제는 합집합에 대한 제대로 된 개념을 가지지 못했다는 것....!! 충격적 이게도 합집합을 그냥 두 집합의 원소의 개수 합이라고 생각했다. 그런데 정확하게는 합집합은 두 집합의 원소 개수 - 교집합..
[프로그래머스/Swift] 귤 고르기
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선 딕셔너리에 귤 크기에 따른 개수를 넣어줬다 [귤 크기: 개수] 그리고 정렬해준 다음에 개수가 많은 귤부터 상자에 넣어줬다. 그래야 귤의 종류가 적어질 수 있으니까! 사실 시간초과가 조금 걱정되었지만 100,000이라 설마~ 하면서 일단 작성했다. 아리까리하다면 해보는 게 답이지!^^ 빠르게 구현해볼 수 있을 거 같아서 도전했다. 처음엔 문제를 잘못 이해해서 틀렸다. 뭐가 문제였냐면~ 한 종..
[프로그래머스/Swift] n^2 배열 자르기
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제가.. 어렵진 않다고 생각했는데 시간초과가 문제였다... n [Int] { var answer = [Int]() let (startX, startY) = (left/Int64(n)+1, left%Int64(n)+1) let (endX, endY) = (right/Int64(n)+1, right%Int64(n)+1) var col = startY for row in startX...endX { ..
[프로그래머스/Swift] 튜플
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열에서 숫자를 뽑아내서 각 숫자의 개수가 많은 순서대로 배열에 넣어주면 된다! 문자열에 대한 구현을 제대로 할 수 있는지에 대해 묻는 문제 같다. [내 코드] import Foundation func solution(_ s:String) -> [Int] { var dictionary = [Int:Int]() var tuple = [Int]() var tmp = "" for str in s { ..
[프로그래머스/Swift] 괄호 회전하기
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이런 괄호 문제는 stack으로 풀면 되는데, 이 문제는 문자열을 회전시키면서 각 문자 수식이 올바른 괄호인지를 체크해주는 추가적인 문제였다. stack은 배열로 구현하고, 문자열의 회전은 앞 문자를 제거하고(removeFirst()) 뒤에 붙여줬다.(append()) checkParentheses 함수 부분이 올바른 괄호인지를 체크하는 기능을 한다. 조금 지저분하지만.. [내 코드] import..
[프로그래머스/Swift] 예상 대진표
·
알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 N이 2^20으로 크기 때문에 이 모든 것을 포함하는 반복문을 만들면 안된다. 사실 거기까지 가지 않아도 규칙만 찾으면 풀 수 있는 문제! 1/2배로 줄어들기 때문에 이에 맞는 연산을 해주면 된다. func solution(_ n:Int, _ a:Int, _ b:Int) -> Int { var answer = 1 var A = a var B = b var N = n while N >= ..
녕이
'알고리즘' 카테고리의 글 목록 (8 Page)