본문 바로가기
728x90
반응형

source-code/Algorithm9

프로그래머스 - 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아래와 같은 흐름으로 접근을 시작했다. 1. 긴 전화번호는 짧은 번호의 접두사가 될 수 없으므로, 번호의 길이 순으로 정렬한다. 2. 이중 for문을 돌며 i번째 전화번호와 그 이후 index의 전화번호들을 비교한다. 3. startsWith 메서드를 통해 i번 째 전화번호로 시작하는 번호가 있을 경우 false, 이외에는 true를 반환한다. function solution(phone_book).. 2023. 12. 3.
프로그래머스 - 폰켓몬, 최소직사각형 다리를 다쳐 꼼짝없이 집에만 있다 보니... 문득 회사에 다니기 전 풀었던 알고리즘 문제가 생각나 프로그래머스에 들어갔다. (심심해서 알고리즘을 풀다니! 대학생 시절 나였으면 상상도 못 했을 텐데) 이전 풀이를 보니... 귀엽기도 하고, 답답하기도 하고. 하하. 그때 풀던 level 1 문제 중 안 푼 게 있어서, 재미 삼아 풀어보았다. 언어는 JS로! 폰켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(num.. 2023. 11. 25.
프로그래머스 _ 크레인 인형뽑기 게임 프로그래머스 _ 크레인 인형뽑기 게임 programmers.co.kr/learn/courses/30/lessons/64061# 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 끙끙끙... 문제를 이해하는데도 한참이 걸렸다! 직접 그림도 그렸다! 아무튼 간에... 제일 처음 든 생각 → 터트려져 사라진 인형의 개수를 return 해야 하니... 우선 잡힌 인형을 담은 list를 구해야겠군! 그런데 특이했던 점! 인형이 담긴 배열인 board는 2차원 배열! 따라서 board[i][j] ← 이런 식으로 원소에 접근할 수 있다! 즉 boar.. 2021. 2. 20.
프로그래머스 _ 내적 프로그래머스 _ 내적 programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 제일 먼저 든 생각 → 내적이 뭔디? 그럴 줄 알고 친절한 프로그래머스는 내적 이란 글자에 링크를 걸어뒀다! 클릭해보면... ??? 없으니만 못한 것 아닌가? 아하! 그러니까 내적은 a, b의 i번째 원소를 곱한 숫자의 합이다! a, b는 길이가 같은 list니까 rang.. 2021. 2. 19.
프로그래머스 _ 두 개 뽑아서 더하기 프로그래머스 _ 두 개 뽑아서 더하기 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 가장 먼저 든 생각 → 짧고 쉬워 보인다! 다음으로 든 생각 → numbers[i]와 numbers[i+1]을 더해주면 끝 아닌가? 대충 이런 식으로? 하지만 코드 실행도 전에 문제점이 보인다. i는 numbers의 길이만큼 for문을 돌텐데, i가 len(numbers) 번째라면? numb.. 2021. 2. 18.
프로그래머스 _ 실패율 프로그래머스 _ 실패율 programmers.co.kr/learn/courses/30/lessons/42889 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 제일 먼저 든 생각 → 문제가 무지 길다! 다음으로 든 생각 → 일단 각 스테이지의 실패율을 구해야 비교가 가능하겠다! 그래서 실패율을 구하러 떠났다. 실패율 = 스테이지에 도달했으나 클리어하지 못한 플레이어 수 / 스테이지 도달한 플레이어 수! 이를 구하기 위해서는... 우선 각 스테이지 번호를 담은 list가 있어야 한다! 스테이지의 개수가 N으로 .. 2021. 2. 17.
프로그래머스 _ 이상한 문자 만들기 프로그래머스 _ 이상한 문자 만들기 programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 가장 먼저 든 생각 ↓ 공백을 기준으로 단어 구분 - split을 드디어 쓸 때가 왔군! 대소문자 변환 - upper/lower을 써야겠군! 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 하므로... split(" ")을 통해 공백을 기준으로 단어를 쪼개 줬다! 의도한 대로 출력이 잘 되는 모습! 다음은 이렇게 분리된 'tr.. 2021. 2. 16.
프로그래머스 _ 하샤드 수 프로그래머스 _ 하샤드 수 programmers.co.kr/learn/courses/30/lessons/12947?language=python3 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 제일 처음 든 생각 → 각 자릿수를 쪼개야겠다! → split 메서드를 쓰자! 바로 마주한 난관. split은 문자열을 구분자를 기준으로 쪼개주는 녀석이다. 우리가 입력받는 x는 숫자. 따라서 일단 요 녀석을 문자열로 바꾼 후 split을 쓰면 될 것 같다. 신나게 치고 print를 했더니.... 2021. 2. 15.
프로그래머스 _ 같은 숫자는 싫어 프로그래머스 _ 같은 숫자는 싫어 programmers.co.kr/learn/courses/30/lessons/12906 코딩테스트 연습 - 같은 숫자는 싫어 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 programmers.co.kr 같은 실수를 반복하지 않기 위해 의식의 흐름을 적는다. 가장 먼저 든 생각 → 중복 제거? Python set을 이용하자! 하지만 10초만에 문제점이 떠올랐다. 1. set은 중복을 몽땅 제거해버린다! 우리가 원하는 건 연속된 숫자만 제거하는 것. 2. set은 dic 형태를 return 한다! 우리가 원하는 건 l.. 2021. 2. 14.
728x90
반응형