본문 바로가기

분류 전체보기255

[프로그래머스] 네트워크 (Swift) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr DFS (깊이 우선 탐색) n개의 컴퓨터들이 서로 연결되어 있는 상태 정보를 2차원 배열로 알려주고 n개의 컴퓨터들이 구성하는 네트워크가 몇개인지 구하는 문제 접근방법 dfs로 풀지 bfs로 풀지 고민하다가 아무래도 dfs로 푸는게 맞는 것 같아서 dfs로 풀었다. 2차원 배열을 모두 보면서 서로 연결된 컴퓨터들을 확인할 것인데 네트워크 하나가 끝나는 지점.. 2022. 4. 6.
[프로그래머스] 가사 검색 (Swift) (스터디) https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr kakao 2020 블라인드 코딩테스트 가사 검색 가사에 들어있는 단어들을 담은 문자열 배열과 검색하고 싶은 키워드를 담은 문자열 배열이 주어지면 각 키워드에 맞는 단어가 몇개 있는지를 배열에 키워드 순서대로 담아 반환하는 문제 키워드의 형태는 와일드카드('?')를 하나이상 포함하며 이외 문자는 알파벳 소문자로만 이루어진 문자열이 주어진다. 접근방법 정확도와 효율성 테스트가 각각 있는 문제로 시간복잡도를 고려해야한다. 전체 가사 단어 길이의 합이 백만이고, 쿼리의 최대 개수 또한 10만개이기 때문에 쿼리 키워드 하나당 모든 가사 단어들을 검사.. 2022. 3. 28.
[프로그래머스] 자물쇠와 열쇠 (Swift) https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr kakao 2020 블라인드 코딩테스트 key를 90도씩 회전하고 이리저리 옮겨서 lock을 풀 수 있는지 물어보는 문제 접근방법 lock은 고정되어있다고 생각하고 Key를 90도씩 3번 회전시키고 (회전된 키의 경우는 4개) key를 한칸씩 옮겨가면서 Lock에 맞춰보고 풀리는지 확인해야한다. 그림으로 설명하면 이렇게 key를 모두 대보는 것이 접근 방법이었다. 시간초과가 날거라고 생각했는데 최대 크기가 20.. 2022. 3. 24.
[프로그래머스] 괄호 변환 (Swift) https://programmers.co.kr/learn/courses/30/lessons/60058?language=swift 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제대로 착실히 재귀함수를 구현해도 잘 풀리는 문제.. 그래서 2번인듯 접근방법 이 문제는 정말 접근방법을 문제에서 다 준 경우.. 문제는 문자열 u가 올바른 괄호문자열인지 판단하는 함수를 만들었었는데 다른분 풀이보고 그냥 첫번째 문자만 열린괄호인지 확인하면 된다는 것을 깨닫고.. 차마 이전 코드를 지우지 못해 주석 처리해둔..(이런거 .. 2022. 3. 24.
[프로그래머스] 문자열 압축 (Swift) https://programmers.co.kr/learn/courses/30/lessons/60057?language=swift 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 2020 카카오 블라인드 코딩테스트 알파벳소문자로 이루어진 문자열(1~1000자)이 주어지고 이를 맨앞에서부터 일정 단위만큼 잘라서 연속되며 + 중복되는 글자를 -> 연속적으로 중복되는 횟수 + 반복되는 문자열 로 압축할 수 있다고 할 때 가장 짧게 문자열을 압축할 수 있는 길이를 구하는 문제 설명이 좀 부족해서 예를 들어보면 .. 2022. 3. 23.
[프로그래머스] 카드 짝 맞추기 (Swift) https://programmers.co.kr/learn/courses/30/lessons/72415 코딩테스트 연습 - 카드 짝 맞추기 [[1,0,0,3],[2,0,0,0],[0,0,0,2],[3,0,1,0]] 1 0 14 [[3,0,0,2],[0,0,1,0],[0,1,0,0],[2,0,0,3]] 0 1 16 programmers.co.kr 카카오 2021 블라인드 채용 4*4인 판에 최대 6종류의 카드쌍(1종류당 2장)이 뒤집혀있다 한번에 두장의 카드를 뒤집어서 같은 종류의 카드면 카드를 지울 수 있고 다른 종류의 카드면 카드를 다시 뒤집어야한다. 이때 모든 이동 횟수와 카드를 뒤집는 횟수는 누적되며 이를 조작횟수라고 하면, 최소 조작 횟수를 반환하는 문제이다. 이 게임에서의 이동은 방향키로 상하좌우.. 2022. 3. 23.
[Git] 명령어 사용법 (추가 예정) * 중괄호 {} 로 표시한 내용은 이 포스팅에서 변수처럼 사용할 것임 ex. {브랜치명} 은 실제로는 main 에 대응 (main이라는 브랜치가 있다는 가정하에) git checkout {브랜치명} : {브랜치명} 으로 브랜치 이동 git checkout . : 현재 새로 작업한 내용 초기화 git diff : stage에 올라가지 않은 변경 내용을 보여줌 git status : stage에 올라간 변경 내용을 보여줌 git pull : 현재 브랜치를 pull 받음 git pull . {브랜치명} : {브랜치명} 브랜치의 내용을 현재 브랜치에 pull 받음 2022. 3. 17.
[프로그래머스] 순위 검색 (C++, Swift) https://programmers.co.kr/learn/courses/30/lessons/72412?language=swift [Int] { makeInfoDic(info) sortInfoDicValues() let result:[Int] = makeResult(query) return result } func makeInfoDic(_ infos:[String]) { for info in infos { var infoToArray:[String] = info.components(separatedBy:" ") let applicantScore:Int = Int(infoToArray.last ?? "0") ?? 0 infoToArray.removeLast() addApplicantInfoToInfoDic(.. 2022. 3. 16.
[프로그래머스] 양궁대회 (Swift) (스터디) https://programmers.co.kr/learn/courses/30/lessons/92342 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 1. 적용 알고리즘과 문제 설명 적용 알고리즘 : dfs 깊이 우선 탐색 문제 설명 어피치와 라이언이 양궁 시합을 한다. 점수는 과녁의 점수 영역에 누구의 화살이 더 많이 있는지에 따라 더 많이 맞힌 사람이 그 점수를 얻는다. 만약에 동일한 개수로 맞혔다면 어피치가 점수를 얻는다. 어피치의 결과판이 주어진다. 이때 라이언이 어떻게 경기를 해야 (각 점수영역에 화살을 .. 2022. 3. 11.