728x90
반응형
모든 문제의 출처는 프로그래머스이다.
문제는 다음과 같다.
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
[ C++ 풀이 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr, int divisor) {
vector<int> answer;
for(auto i : arr) // 벡터의 모든 요소를 순회하면서
if(i%divisor == 0) // 나누어 떨어지면
answer.push_back(i); // answer 벡터에 추가
if(answer.empty()) // 모든 요소를 돌았음에도 answer가 비었다면
answer.push_back(-1); // -1 값 대입
else // answer에 값이 들어있다면 정렬!
sort(answer.begin(), answer.end()); // 기본은 오름차순
return answer;
}
|
cs |
[ Python 풀이 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def solution(arr, divisor):
answer = [] # 빈 리스트 생성.
for i in arr: # arr 내 요소를 순회
if i%divisor == 0: # 나누어 떨어진다면
answer.append(i) # 해당 요소를 answer 리스트에 추가
if not answer: # 리스트가 비어있다면(리스트가 비면 거짓, 들어있으면 참)
answer.append(-1) # -1 추가
else: # 리스트가 비어있지 않다면
answer.sort() # 기본 오름차순으로 정렬.
return answer
# 아래와 같이 한 줄로도 처리가 가능하다.
# sort는 리스트의 내장 함수이며, 원본 리스트 내의 순서를 변경한다
# sorted는 일반 내장 함수로 원본 리스트를 변경하지 않고, 새롭게 정렬된 리스트를 반환한다.
def solution(arr, divisor):
return sorted([i for i in arr if i%divisor == 0]) or [-1]
|
cs |
sort와 sorted 정리해본 것 같은데, 그냥 나올 때 마다 정리하겠다.
C++ 에서도 Python 에서도 딱히 어려운 부분은 없기 때문에 그냥 마무리한다.
728x90
반응형
'프로그래밍응용 > 오답노트' 카테고리의 다른 글
프로그래머스, 실패율 카카오 (C++) (0) | 2021.04.16 |
---|---|
프로그래머스, 문자열 내림차순으로 배치하기( C++, Python ) (0) | 2021.02.28 |
프로그래머스, 문자열 내 p와 y의 개수(C++, Python) (0) | 2021.02.28 |
프로그래머스, 짝수와 홀수 ( C, C++, Python ) (0) | 2021.02.28 |
프로그래머스, 카카오 인턴, 키패드 누르기(C++, Python) (0) | 2021.02.28 |