본문 바로가기

알고리즘43

[python] 문자열 내 마음대로 정렬하기(연습문제) 문제는 위와 같다. 목표는 입력받은 문자열을 원소로 가지는 배열 strings를 입력받은 인덱스 번호 n번째 문자를 기준으로 오름차순 정렬한 배열을 반환한다. 주의할 점은 만약 기준 문자가 같을 경우 해당 문자는 사전순으로 배열해야 한다. strings가 [sun, bed, car]이고 n이 1이라면 인덱스 번호 1인 문자 u, e, a를 기준으로 오름차순 정렬하므로 a, e, u 순서가 되므로 반환되는 배열은 [car, bed, sun]이 된다. strings가 [abc, abe, abd]이고 n이 1이라면 기준이 되는 문자들이 b로 모두 같다 따라서 이때 기준 문자가 같은 문자열들은 사전순으로 정렬해야 하므로 abc, abd, abe 가된다. 설계 및 구현 구현을 위해 주어진 함수는 정렬할 배열 st.. 2020. 3. 22.
[C++] 두 정수 사이의 합(연습문제) 문제는 간단하다 매개변수로 전달받는 두 수 a, b 사이에 속한 모든 정수의 합을 반환하면 된다. 즉, a=1 b=5 라면 1+2+3+4+5=15 이므로 15를 반환하면 된다. 주의할 점은 a 가 b보다 작다는 보장이 없는 것이다. 설계 및 구현 구현을 위해주어진 함수는 long long 타입의 반환값을 가지며 int형 매개변수 a, b를 가진다. 파이썬에서 구현한것 처럼 등차수열의 합을 사용하자 ① n(a + b)/2 ② n(2a + (n-1)d)/2 (a가 첫번째 항이라고 가정할때) 파이썬으로 구현했을때와 같다. 단, 반환할때 long long으로 형변환을 해주지 않고 진행했을때 a, b가 int형이라 반환 타입과 맞지않아 에러가 발생하는 경우가 있었다. 무리없이 채점을 통과할 수 있었다. 2020. 3. 21.
[python] 두 정수 사이의 합(연습문제) 문제는 간단하다 매개변수로 전달받는 두 수 a, b 사이에 속한 모든 정수의 합을 반환하면 된다. 즉, a=1 b=5 라면 1+2+3+4+5=15 이므로 15를 반환하면 된다. 주의할 점은 a 가 b보다 작다는 보장이 없는 것이다. 설계 및 구현 구현을 위해 주어진 함수는 매개변수 a, b를 가지는 간단한 함수이다. 해당 문제는 등차수열의 합을 사용하면 쉽게 풀린다. 주어지는 두 수 a, b사이의 공차가 1인 수열의 합을 생각하면 자동적으로 a, b사이의 모든 정수의 합을 구할 수 있다. 공차 : d, 항의 개수 : n, 첫번째 항: a 와 b 중 작은수, n번째 항: a 와 b중 큰 수 사용하여 등차수열의 합을 구하면 ① n(a + b)/2 ② n(2a + (n-1)d)/2 (a가 첫번째 항이라고 가정.. 2020. 3. 21.
[C++] 같은 숫자는 싫어(연습문제) 문제는 위와 같다. 입력받은 배열 arr의 원소들을 입력받은 divisor로 나누었을 때 나누어 떨어지는 값을 오름차순으로 반환하고 나누어 떨어지는 수가 없다면 [-1]을 반환하면 된다. 예제를 확인해보면 배열이 [5, 9, 7, 10], divisor가 5로 입력받을 경우 5로 나누어 떨어지는 원소는 5, 10이 있다 따라서 해당 원소를 오름차순으로 배열에 넣어 반환하면 [5, 10]이 된다. [3, 2, 6], 10일 경우 10으로 나누었을 때 나누어 떨어지는 수가 없으므로 [-1]을 반환한다. 설계 및 구현 구현을 위해 주어진 함수는 int형 벡터를 반환값으로 가지고 int형 벡터 arr과 int형 변수 divisor를 매개변수로 지닌다. 구현 내용은 파이썬에서 정리한것을 요약하면 다음과 같다. ①.. 2020. 3. 20.
[python] 같은 숫자는 싫어(연습문제) 문제는 위와 같다. 입력받은 배열 arr의 원소들을 입력받은 divisor로 나누었을 때 나누어 떨어지는 값을 오름차순으로 반환하고 나누어 떨어지는 수가 없다면 [-1]을 반환하면 된다. 예제를 확인해보면 배열이 [5, 9, 7, 10], divisor가 5로 입력받을 경우 5로 나누어 떨어지는 원소는 5, 10이 있다 따라서 해당 원소를 오름차순으로 배열에 넣어 반환하면 [5, 10]이 된다. [3, 2, 6], 10일 경우 10으로 나누었을 때 나누어 떨어지는 수가 없으므로 [-1]을 반환한다. 설계 및 구현 구현을 위해 주어진 함수는 간단하게 arr, divisor를 매개변수로 받는 함수이다. 해당 문제는 특별히 구현에 대해 고민할 필요가 없이 arr의 각 원소들을 divisor로 나누어 나머지가 .. 2020. 3. 20.
[C++] 같은 숫자는 싫어(연습문제) 문제는 위와 같다. 입력받은 배열에서 연속적으로 나타나는 숫자를 하나만 남기고 전부 제거하면 된다. 단 순서를 유지하여 연속된 숫자를 제거한 배열을 반환해야 한다. 따라서 [1, 1, 2, 2, 1, 1] 이란 배열을 입력받으면 [1, 2]가 아니라 [1, 2, 1]을 반환해야 한다. 예제를 확인해보면 [1, 1, 3, 3, 0, 1, 1]을 입력받는다면 연속으로 나오는 숫자를 하나씩 제거하여 [1, 3, 0, 1]을 반환하는 것을 확인할 수 있다. 연속된 숫자가 아닌 0은 그대로 반환해 주면 된다. 설계 및 구현 구현을 위해 주어진 함수는 int타입을 가지는 arr 벡터를 매개변수로 입력받아 int타입을 가지는 벡터를 반환한다. 해당 문제를 해결하기 위한 설계는 앞서 파이썬을 사용한 풀이에서 진행했으므.. 2020. 3. 18.