2023. 4. 23. 14:44ㆍAlgorithm
1. 배열 자르기
(문제 설명, 제한사항, 입출력 예)
주어진 배열의 num1 인덱스부터 num2 인덱스까지 자른 배열을 반환하라는 문제이다.
(내가 생각한 풀이 과정)
파이썬 슬라이싱을 사용하면 되는 아주 간단한 문제이다.
이때, 파이썬 슬라이싱의 두 번째 요소는 해당 인덱스의 값을 포함하지 않기 때문에 +1을 시켜줘야 한다.
(코드)
💡 내 코드
def solution(numbers, num1, num2):
return numbers[num1:num2+1]
2. 외계행성의 나이
(문제 설명, 제한사항, 입출력 예)
0부터 9까지의 숫자를 알파벳(a~j) 순으로 정해진 문자로 조합한 문자열을 반환하라는 문제다.
(내가 생각한 풀이 과정)
아스키코드 기준 97번이 알파벳 a이기 때문에 숫자를 이용하여, 변환하는 방법을 생각했다.
앞에 수부터 한자릿수 단위로 끊어(//=10 식을 사용) 숫자를 알파벳으로 변환하고, 최종적으로 반환되는 문자열을 뒤집어주면 될 것이라 생각했다.
(코드)
💡 내 코드
def solution(age):
new_age = ""
while age!=0:
new_age+=chr(age%10+97)
age//=10
return new_age[::-1]
💡 다른 사람의 풀이 코드
나와는 같은 방법을 사용했지만, join 함수와 리스트 컴프리헨션을 사용해 코드 식을 간결하게 줄일 수도 있었다.
def solution(age):
return ''.join([chr(int(i)+97) for i in str(age)])
3. 진료순서 정하기
(문제 설명, 제한사항, 입출력 예)
응급도가 써있는 배열을 보고, 응급도가 높은 순서대로 우선순위를 작성해 배열을 반환하라는 문제이다.
(내가 생각한 풀이 과정)
응급도가 써있는 배열을 한 요소씩 반복시키면서 배열이 정렬되어 있을 때의 인덱스를 찾으면 된다고 생각했다.
단, 인덱스는 0부터 시작하니 1을 더해준 값을 해야 1순위부터 진료순서를 정할 수 있겠다.
(코드)
💡 내 코드
def solution(emergency):
s_emergency = sorted(emergency, reverse=True)
return [s_emergency.index(i)+1 for i in emergency]
💡 다른 사람의 풀이 코드
위와 마찬가지로, 내 코드를 한줄로 줄이는 것도 가능했다.
def solution(emergency):
return [sorted(emergency, reverse=True).index(e) + 1 for e in emergency]
4. 순서쌍의 개수
(문제 설명, 제한사항, 입출력 예)
자연수 n이 입력값으로 주어질 때, 두 자연수의 곱으로 n을 만들 수 있는 순서쌍의 개수를 반환하라는 문제다.
(내가 생각한 풀이 과정)
곱으로 어떤 수를 만들 수 있다는 것은 그 수를 나누었을 때 나머지가 없이 나누어 떨어진다는 뜻과 같다.
거기에 순서쌍이라는 조건 때문에 중복값을 제거하지 않아도 되는 만큼,
숫자를 1부터 반복시키면서 주어진 수 n을 해당 숫자와 나누었을 때 나머지가 남지 않는 수의 카운트를 세면 된다고 생각했다.
(코드)
💡 내 코드
def solution(n):
answer = [i for i in range(2, n+1) if n % i == 0]
return len(answer)+1
💡 다른 사람의 풀이 코드
나와 비슷한 방법이면서, filter와 lambda 함수를 이용해 코드를 줄일 수도 있다.
def solution(n):
return len(list(filter(lambda v: n % (v+1) == 0, range(n))))
'Algorithm' 카테고리의 다른 글
[Programmers/Lv. 0] 코딩테스트 입문 Day 10 - 조건문, 배열, 수학, 시뮬레이션 (Python) (0) | 2023.04.30 |
---|---|
[Programmers/Lv. 0] 코딩테스트 입문 Day 9 - 수학, 문자열, 해시, 완전탐색, 조건문 (Python) (0) | 2023.04.24 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 7 - 문자열, 조건문, 수학, 반복문 (Python) (3) | 2023.03.15 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 6 - 문자열, 반복문, 출력, 배열, 조건문 (Python) (1) | 2023.03.13 |
[Programmers/Lv. 0] 코딩테스트 입문 Day 5 - 수학, 배열 (Python) (0) | 2023.03.13 |