본문 바로가기

코딩 테스트 연습29

[프로그래머스] lv2. 교점에 별 만들기 (Python 3) ❓ 문제 코딩테스트 연습 - 교점에 별 만들기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ✏️ 나의 풀이 💡 해결하기 입력으로 주어지는 리스트 line의 각각의 요소들로 하나씩의 직선의 방정식을 만들 수 있다. 따라서 line의 요소들을 직선 하나씩으로 생각할 수 있고, 직선 2개씩의 교점을 확인하는 식으로 문제를 풀어나간다. 코드 작성 순서는 다음과 같다. 1. def solution(line): answer = [] vertex = set() 답은 리스트 안에 담겨서 나와야 하므로 빈 리스트.. 2023. 4. 29.
[프로그래머스] lv1. 자릿수 더하기 ❓ 문제 💡 해결하기 입력되는 숫자를 type() 함수를 통해 알아본 결과 int형이었다. 자릿수를 더한 값을 구하는 방법에는 다음과 같은 방법이 있다. 1️⃣ 숫자를 문자열로 바꾸어 그 요소를 하나씩 더하기 숫자는 각 자리수로 분해가 불가하지만 문자열의 경우 가능하다. 따라서 숫자를 문자열로 바꾼 뒤 요소 하나하나를 탐색하여 더하면 된다. 물론, 더할 때에는 다시 int형으로 바꾸어 주어야 한다. 📌 Python def solution(number): answer = 0 for s in str(number): answer += int(s) return answer 또는 다음과 같이 map() 함수와 sum() 함수를 이용하여 간단하게 처리할 수 있다. def solution(number): return.. 2023. 4. 25.
[프로그래머스] lv1. 평균 구하기 ❓ 문제 💡 해결하기 평균값을 구하는 공색대로 arr의 원소들을 모두 합한 뒤 arr의 길이로 나누면 된다. 📌 Python sum() 함수를 이용해 arr 배열의 원소를 한꺼번에 더한 후 배열 arr의 길이로 나누면 된다. def solution(arr): return sum(arr) / len(arr) 📌 Javascript JS에서는 내장함수 sum이 존재하지 않는다. 따라서 다음과 같이 for문을 이용하여 원소를 하나씩 탐색하여 하나씩 더해준다. function solution(arr) { let sum = 0; for (e of arr) { sum += e; } return sum / arr.length; } 혹은 다음과 같이 reduce() 메서드를 이용하여 원소의 값을 누적할 수도 있다. f.. 2023. 4. 25.
[프로그래머스] lv1. 약수의 합 ❓ 문제 💡 해결하기 기본적인 방법으로는 1 이상 n 이하의 범위의 자연수로 n을 하나씩 나누어 봐서 나머지가 0이 나오게 하는 수가 약수가 되므로 이들을 더한 값을 반환하면 된다. 그런데 약수에 자기 자신이 포함되는 것은 모든 자연수에 해당한다. 따라서 범위를 1에서 n을 2로 나눈 몫까지로 정하고, 마지막에 자기 자신을 따로 더해주면 불필요한 연산이 줄어들어 효율성이 높아진다. 📌 Python def solution(n): return sum([d for d in range(1, n // 2 + 1) if n % d == 0]) + n 📌 Javascript JS의 경우, 위와 같은 원리로 범위를 divisor 2023. 4. 25.