알고리즘/프로그래머스
-
[Programmers] Lv.1 두 개 뽑아서 더하기 _JavaScript알고리즘/프로그래머스 2023. 5. 7. 13:14
프로그래머스 Lv1. 두 개 뽑아서 더하기 문제 풀이 🧶 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 🧶 접근 방식 단순하게 생각해서 이중 for문으로 만들었습니다. 중복 제거는 includes를 사용했고 같은 인덱스 요소 끼리 더하지 않도록 if문으로 예외처리 해주었습니다. 오름차순 정렬은 sort를 이용했습니다. 🧶 내 풀이 functio..
-
[Programmers] Lv.1 키패드 누르기 _JavaScript알고리즘/프로그래머스 2023. 5. 6. 12:54
프로그래머스 Lv1. 키패드 누르기 문제 풀이 🧶 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드..
-
[Programmers] Lv.1 덧칠하기 _JavaScript알고리즘/프로그래머스 2023. 5. 2. 09:12
[프로그래머스] Lv1. 덧칠하기 _JavaScript 🧶 문제 설명 어느 학교에 페인트가 칠해진 길이가 n미터인 벽이 있습니다. 벽에 동아리 · 학회 홍보나 회사 채용 공고 포스터 등을 게시하기 위해 테이프로 붙였다가 철거할 때 떼는 일이 많고 그 과정에서 페인트가 벗겨지곤 합니다. 페인트가 벗겨진 벽이 보기 흉해져 학교는 벽에 페인트를 덧칠하기로 했습니다. 넓은 벽 전체에 페인트를 새로 칠하는 대신, 구역을 나누어 일부만 페인트를 새로 칠 함으로써 예산을 아끼려 합니다. 이를 위해 벽을 1미터 길이의 구역 n개로 나누고, 각 구역에 왼쪽부터 순서대로 1번부터 n번까지 번호를 붙였습니다. 그리고 페인트를 다시 칠해야 할 구역들을 정했습니다. 벽에 페인트를 칠하는 롤러의 길이는 m미터이고, 롤러로 벽에 ..
-
[Programmers] Lv.1 추억 점수 _JavaScript알고리즘/프로그래머스 2023. 5. 1. 13:14
프로그래머스 Lv1. 추억 점수 문제 풀이 🧶 문제 설명 사진첩이라는 배열을 보고 추억 점수라는 것을 매겨서 배열에 담아 리턴하는 문제입니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 🧶 입출력 예 name yearning photo re..
-
[Programmers] 가장 가까운 글자 _Python알고리즘/프로그래머스 2023. 1. 3. 09:41
문제 https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(s): answer = [] word = {} for i, w in enumerate(list(s)): if w not in word: answer.append(-1) word[w] = i else: answer.append(i - word[w]) word[w] = i return answer
-
[Programmers] 크기가 작은 부분문자열 _Python알고리즘/프로그래머스 2022. 12. 28. 01:21
문제 https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(t, p): answer = 0 len_p = len(p) len_t = len(t) list(t) p = int(p) for i in range(0, len_t): word = "" if len_t - i < len_p : # print("범위초과") break; n = i for j in range(0, len_p): word += t[n] n += 1 # ..
-
[Programmers] 문자열 나누기 _Python알고리즘/프로그래머스 2022. 12. 2. 18:19
문제 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 def solution(s): ans = 0 char = "" ch1, ch2 = 0, 0 for idx, i in enumerate(s): if char == "": char = i ch1 += 1 elif char == i: ch1 += 1 elif char != i: ch2 += 1 if ch1 == ch2 or idx == len(s)-1: print(char, i, idx) ..
-
[Programmers] 삼총사 _Python알고리즘/프로그래머스 2022. 12. 1. 16:07
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131705 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 # itertools 모듈에서 combinations 함수 사용 (집합 뽑기) from itertools import combinations def solution (number) : # 정답이 되는 삼총사의 개수를 변수 cnt = 0 # combinations함수를 이용해 # number 배열에서 원소 3개씩 조합을 뽑아서 i에 담는 반복문 for i in combinations(n..