Algorithm
-
[Programmers] 나머지 한 점 - Swift (통과)Algorithm 2022. 12. 31. 20:00
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정사각형이 되려면 x가 총 4개 인데 그중 두개가 동일해야하고, y 4개중에 두개 두개가 동일해야 한다. 그래서 x 끼리 모으고 y 끼리 모은 다음에 1개씩만 남은 좌표를 구하고 x, y 를 모은 다음에 리턴해주었다. func solution(_ v: [[Int]]) -> [Int] { var ans: [Int] = [] var x: [Int] = [] var y: [Int] = [] for location in v { x.append(location[0]) y.append(location[1]) } let ..
-
[Leetcode] 1578. Minimum Time to Make Rope Colorful - Swift 1차 시도 (탈락)Algorithm 2022. 12. 30. 20:51
https://leetcode.com/problems/minimum-time-to-make-rope-colorful/ Alice has n balloons arranged on a rope. You are given a 0-indexed string colors where colors[i] is the color of the ith balloon. Alice wants the rope to be colorful. She does not want two consecutive balloons to be of the same color, so she asks Bob for help. Bob can remove some balloons from the rope to make it colorful. You are..
-
[Leetcode] 1375. Number of Times Binary String Is Prefix-Aligned - Swift (통과)Algorithm 2022. 12. 30. 17:15
https://leetcode.com/problems/number-of-times-binary-string-is-prefix-aligned/description/ flip 이라는 배열이 들어온다. 그리고 전구의 수는 배열의 길이 만큼있다. 각 전구에는 스위치가 연결되어 있다. 하지만 각 전구의 스위치는 이전 전구의 스위치와 연결이 되어있어 이전 전구가 켜져있어야 전구의 스위치를 올렸을 때 전구가 켜진다. 0번 전구와 1번전구가 연결되어 있고 1번 전구와 2번 전구가 연결되어있다. 0번이 안켜져있는 상태에서 2번은 켜도 소용이 없고 0번 1번이 켜져있어야 2번 스위치를 올렸을 때 불이 들어온다. 그리고 flips 배열에는 스위치를 켜는 순서가 담겨있다 예) flips = [3,2,4,1,5] 라는 배열이 ..
-
[백준] (Swift) 1697번: 숨바꼭질 - BFS 문제Algorithm 2022. 5. 9. 16:51
1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net import Foundation // 입력값 let input = readLine()!.split { $0 == " " }.map { Int(String($0))! } // 최대 범위 let max = 100000 // 초기 입력값 let currentLocation = input[0] let targetLocation = input[1] // return 해줄 값 var result = 0 // 두 입력값의 값이 같다면 종료한다 if..
-
[Programmers] 정렬 : 가장 큰 수Algorithm 2022. 1. 27. 16:16
def solution(numbers): numList = list(map(str, numbers)) numList.sort(key = lambda x: x*3, reverse=True) answer = str(int("".join(numList))) return answer 이건 솔직히 못풀겟어서 다른 사람 코드 보고 이해했다. 그러면 설명이라도 달아보겠다. 설명 numbers = [6, 10, 2] 이라면, numList = ["6","10","2"] 이 될것이다 그리고 lambda x: x3 를하게 되면 "666", "101010", "222" 가 된다 이렇게 numerical한 string을 sort하게 될다면 "101010" , "222", "666" 으로 정렬하게 된다 다른 예로는 "10101..
-
[Programmers/ Python] 로또의 최고 순위와 최저 순위Algorithm 2021. 11. 30. 10:24
두개의 리스트가 주어진다. 당첨번호와, 내가 뽑은 로또 번호 리스트. 그런데 내가 뽑은 리스트에는 몇몇 번호가 0로 들어오는 이건 미지수이다. 그래서 내가 뽑은 번호와 당첨번호를 비교해서 미지수가 당첨일 경우와 당첨이 아닐 경우 두가지 경우의 수를 계산해서 반환해 주면된다 def solution(lottos, win_nums): rank = [6, 6, 5, 4, 3, 2, 1] unknown = lottos.count(0) # 미지수 구하기 match = 0 for x in win_nums: if x in lottos: match += 1 return rank[match + unknown], rank[match]
-
[Programmers/ Python] 완주하지 못한 선수Algorithm 2021. 11. 30. 09:30
개념은 쉽다 participant에서 completion을 빼주어 차집합을 찾으면 된다. 따라서 set를 이용해 해결하려 했으나 set는 중복된 값을 허용하지 않기 때문에 막혔다. 그래서 구글을 뒤지다가 collections.counter라는 모듈을 발견! counter이란? list안에 같은 이름을 가진 요소가 몇개 인지 dict 형태로 알려준다. 예를 들면 import collections participant = ["leo", "kiki", "eden"] completion = ["eden", "kiki"] p = collections.Counter(participant) c = collections.Counter(completion) print(p, c) => Counter({'leo': 1, '..