코테 11

[자료구조] Trie - Swift

Trie 문자열 검색 문제에 특화된 트리 형태의 자료구조. 원하는 문자열을 O(m) (m = 문자열의 길이) 시간복잡도로 찾을 수 있다. struct Trie 내의 Trie 포인터 배열을 가지고 해당 키에 맞는 포인터로 이어지는 구조. Trie는 검색 후보 문자열을 하나의 트리로 만들어서, 한번의 검색 O(m) 만으로 문자열의 존재 여부를 검색 가능하다. 주의 항상 첫번째 root 노드는 빈칸이다. 트라이 객체마다 트라이 포인터 배열을 경우의 수만큼 가져야 하므로 공간복잡도가 매우 커질 수 있다. 공간복잡도 : O(key의 경우의수 * 포인터 크기 * 전체 트라이에 존재하는 노드 수) 필수 1) 다음 두 가지를 가지고 있어야 한다. - child (자식 노드를 담는 배열) - isTerminal (어떤 ..

[ 프로그래머스 ] 거리두기 확인하기 - python

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 요약 - 멘해튼 거리 : |y1 - y2| + |x1 - x2| - 어떤 ..

Python 2022.02.11

문자열에서 특정문자"들"을 다른 문자로 치환하는 방법 - Swift

옛날에 코테 문제풀 때 다른 방법이 있었던 것 같은데.. 기억이 안나서 extension하나 만들었습니다 extension String { func replaceTargetsToReplacement(_ occurs: [String], _ replacement: String) -> String { var converted = self for occur in occurs { converted = converted.replacingOccurrences(of: occur, with: replacement) } return converted } } 다른 방법 아시는 분 있으면 댓글로 알려주세요! 🙏🏻

Swift 2021.10.23

[프로그래머스 L2] N개의 최소공배수 - swift

문제링크 https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 문제 요약 두 수의 최소공배수란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. n개의 수의 최소공배수는 n개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니니다. n개의 숫자를 담은 배열 arr가 입력되었을 때 이 수들의 최소공배수를 반환하는 함수를 완성. - arr의 길이는 1이상 ..

Stack / Queue 구현해보기 - swift

** 작성자가 stack / queue를 연습하면서 작성한 기록을 남긴내용입니다. 나중에 자세한 설명가 추가 내용을 작성하며 수정할 예정입니다. ** Stack - LIFO, array로 구현 - 다양한 자료형을 수용할 수 있도록 generic을 이용 - push, pop 메서드의 경우 구조체 내부에서 데이터를 수정하기 때문에 mutating 키워드를 사용. struct Stack { var stack = [T]() var isEmpty: Bool { return self.stack.isEmpty } var top: T? { return self.stack.last } mutating func push(_ item: T) { self.stack.append(item) } mutating func pop(..

[프로그래머스 L1] 문자열 다루기 기본 - swift

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12918 코딩테스트 연습 - 문자열 다루기 기본 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 programmers.co.kr 문제 요약 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성되어 있는지 확인해주는 함수. 코드 func solution1(_ s:String) -> Bool { var bool: Bool = false if s.count == 4 || s.count == 6 { bool = (Int(s) != ..

[프로그래머스 L2] [1차] 뉴스 클러스터링 - swift

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17677?language=swift 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 요약 유사한 기사를 묶는 기준을 정하기 위해 "자카드 유사도"라는 방법을 찾아냈다. 자카드 유사도는 집합 간의 유사도를 검사하는 여러 방법 중 하나로, 두 집합 A,B 사이의 자카드 유사도 J(A, B)는 두 집합의 교집합 크기를 두 집합의 합집합 크기로 나눈 값을 정의된다. 집합 A,B가 모두 공..

주어진 문자열이 문자로만 이루어져 있는지 체크하는 함수 만들기 - swift

swift5에서 character의 속성이 추가 되었다. 그 중에서 character가 문자인지 확인하는 isLetter 를 사용하여 문자열 전체가 문자로만 이루어져 있는지 확인하는 코드를 작성해 보았다. . . . func isAlphabet(_ str: String) -> Bool { let arr = str.map{ String($0) } // map을 사용하여 문자열을 배열로 변환. for i in 0.. Bool { for char in str { if !char.isLetter { return false } } return true } 틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 🌈댓글은 언제나 환영입니다🙏🏻

Swift 2021.07.22

[프로그래머스 L1] 신규 아이디 추천 - swift

문제 링크 https://programmers.co.kr/learn/courses/30/lessons/72410?language=swift 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 요약 신규 유저가 입력한 아이디를 나타내는 new_id가 매개변수로 주어질 때, "네오"가 설계한 7단계의 처리 과정을 거친 후의 추천 아이디를 return 하도록 solution 함수를 완성하시오. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, ..

[프로그래머스 level1] 가운데 글자 가져오기 - Python

문제 본문 https://programmers.co.kr/learn/courses/30/lessons/12903?language=python3 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 문제 풀이 1. 첫번째 풀이 엣날에 잠깐 겉핥기식으로 python을 공부했었어서 따로 찾아보지 않고 기억을 더듬어 작성해본 코드이다. 문자열s의 길이를 2로 나눈 값을 middle에 넣어주었다. -> 가운데 인덱스 만약 문자열s의 길이가 홀수 이면, s의 middle번째 인덱스에 있..

Python 2021.07.18
반응형
1 2