본문 바로가기

알고리즘43

[python] 문자열 다루기 기본(연습문제) 문제의 목표는 전달받은 문자열 s가 길이가 4 또는 6을 만족하고 숫자로만 이루어져 있는지를 확인하여 만족하면 True를 아니라면 False를 반환하면 된다. 예를 들어 s가 "12345"로 주어진다면 길이가 4 또는 6이 아니므로 False를 반환하고 "0000"으로 주어진다면 길이가 4이고 숫자로만 이루어져 있으므로 True를 반환하면 된다. 설계 및 구현 구현을 위해 주어진 함수는 조건을 확인할 문자열 s를 매개변수로 가지는 함수이다. 구현은 간단하다 문자열 s의 길이가 4 또는 6인지 확인하고 해당 조건을 만족한다면 문자열이 숫자로만 이루어져 있는지 확인하면 된다. 즉, 길이가 4 또는 5라는 조건과 숫자로만 이루어져 있다 라는 조건이 모두 참일경우에 True를 반환하고 둘 중 하나라도 만족하지 .. 2020. 3. 26.
[C++] 문자열 내림차순으로 배치하기(연습문제) 문제의 목표는 입력받은 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 즉, 내림차순으로 정렬한 문자열을 반환하는 것이다. 여기서 문자를 큰 것부터 작은 순은 알파벳 사전 순으로 맨뒤가 크고 맨 앞이 작다. 주의할 점은 대문자는 소문자 보다 작은 것으로 간주한다. 만약 "AbZa"라는 문자열이 주어진다면 "baZA"를 반환하면 된다. 설계 및 구현 구현을 위해 주어진 함수는 반환 타입으로 string을 가지며 매개변수 string s를 가지는 함수이다. 함수의 구현은 파이썬에서 한 것처럼 진행하면 ① 문자열 s의 문자들을 벡터에 저장 ② 내림차순으로 정렬 후 다시 문자열로 변경하여 반환 ①을 수행하기 위해 char타입을 저장하는 벡터를 생성하여 문자열의 문자들을 하나씩 저장한다. ②를 수행하기 위해 .. 2020. 3. 24.
[python] 문자열 내림차순으로 배치하기(연습문제) 문제의 목표는 입력받은 문자열 s에 나타나는 문자를 큰 것부터 작은 순으로 즉, 내림차순으로 정렬한 문자열을 반환하는 것이다. 여기서 문자를 큰 것부터 작은 순은 알파벳 사전 순으로 맨뒤가 크고 맨 앞이 작다. 주의할 점은 대문자는 소문자 보다 작은 것으로 간주한다. 만약 "AbZa"라는 문자열이 주어진다면 "baZA"를 반환하면 된다. 설계 및 구현 구현을 위해 주어진 함수는 문자를 내림차순으로 배열할 매개변수 s를 가지는 함수이다. 해당 문자열의 문자들을 내림차순으로 정렬해야 하므로 문자열이 가진 문자들을 하나씩 잘라 리스트에 저장한뒤 정렬하고 다시 문자열로 변경하면 된다. 이때 대문자는 아스키코드값이 소문자보다 작기 때문에 대문자가 더 작다는 조건은 자동적으로 성립한다. ① 문자열 s의 문자들을 리.. 2020. 3. 24.
[C++] 문자열 내 p와 y의 개수(연습문제) 문제는 간단하다 주어진 문자열에서 'p'와 'y'의 개수를 비교하여 같으면 True를 다르면 False를 반환하면 된다. 대소문자는 구분 없이 개수를 세면 된다. 따라서 "pPoooyY"가 주어질 경우 'p'의 개수는 2이고 'y'의 개수는 2이므로 True를 반환하면 된다. 설계 및 구현 구현을 위해 주어진 함수는 개수에 따라 True나 False를 반환해야 하므로 bool타입의 반환 값을 가지며 string 타입의 변수 s를 매개변수로 전달받는다. 구현 내용은 파이썬에서 생각했으므로 바로 작성하면 위와같이 모두 소문자로 변경한 다음 p와 y의 개수를 세려고 했으나 문제를 해결하는 가성머신에서 런타임 에러가 발생하여 해결되지 않는다. 따라서 대소문자를 모두 개수를 카운트하고 개수를 == 연산자로 비교 .. 2020. 3. 23.
[python] 문자열 내 p와 y의 개수(연습문제) 문제는 간단하다 주어진 문자열에서 'p'와 'y'의 개수를 비교하여 같으면 True를 다르면 False를 반환하면 된다. 대소문자는 구분 없이 개수를 세면 된다. 따라서 "pPoooyY"가 주어질 경우 'p'의 개수는 2이고 'y'의 개수는 2이므로 True를 반환하면 된다. 설계 및 구현 구현을 위해 주어진 함수는 p와 y의 개수를 세야 하는 문자열 s를 매개변수로 받는 함수이다. 해당 문제의 구현은 간단하다 주어진 문자열에서 p와 y의 개수를 대소문자 구분 없이 비교하기 위해 주어진 문자열을 모두 대문자 또는 소문자로 변경하면 된다. 그리고 같다면 True 다르면 False를 반환하면 된다. p와 y가 하나도 없는 경우는 둘 다 개수가 0으로 같을 때의 결과와 같으므로 따로 조건을 설정하지 않아도 된.. 2020. 3. 23.
[C++] 문자열 내 마음대로 정렬하기(연습문제) 문제는 위와 같다. 목표는 입력받은 문자열을 원소로 가지는 배열 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 가된다. 설계 및 구현 구현을 위해 주어진 함수는 string타입을.. 2020. 3. 22.