3. checkPalindrome
입력한 문자열이 대칭이되면 True 값을, 아닐경우 False값을 반환하는 문제
처음에는 문자열 슬라이싱을 이용하여 비교를하려했지만, "cabac" 같은 문자열의 경우 b를 기준으로 ca와 ac가 대칭이지만 ==연산으로 비교했을때 순서가 달라 잘못된 값이 나왔다.
그래서 for 문을 이용하여, 문자열/2 의 길이만큼을 반복횟수로 둔 다음, 문자열의 맨 앞과 맨 뒤를 비교하여 다르면 False 값을, 맞으면 True 값을 반환하게 했다.
4. adjacentElementsProduct
배열값을 입력하면 순차적으로 한쌍식 곱하여 가장 큰 값을 반환하는 문제이다.
inputArray = [1,2,3,4,5] 를 대입했다고 했을때,
먼저 a에 배열의 길이를 [5]를 저장하고, b에는 최초 쌍의 곱의 값을 넣어준다. <- 1*2
그리고 for문과 range를 이용하여 0~5 까지 출력하되, 연산에 필요한 배열의 마지막 인덱스값이 3 이므로 range(a-1)을 해준다. 0~4
if문을 이용해 최초쌍의 곱의 값과 다음쌍의 곱의 값을 비교하여, 다음쌍의 곱의 값이 더 클경우 b에 값을 넣어주고 반복하여 비교한 뒤 b값을 반환해준다.
다른 사용자의 해설을 보니 max함수를 사용해 간단하게 최대값을 반환하는 방법이 있다는 걸 알게되었다.
5. shapeArea
위와같은 방법으로 증가하는 도형에대해서 규칙을 찾아 함수를 만드는 문제이다.
1 , 5 , 13 , 25 --- 로 증가하는 등비수열이다. n값을 입력받은 뒤, n^2 + (n-1)^2 값을 반환해주었다.
6. makeArrayConsecutive2
배열값을 대입하면 오름차순으로 정리한 뒤, 정렬된 배열의 원소 사이에 부족한 숫자가 몇개인지 찾는 문제이다.
statues = [6, 2, 3, 8] 을 입력했다고 했을때, 먼저 입력받은 statues 배열을 sort함수를 사용해 오름차순으로 정렬해준다.
statues = [2, 3, 6, 8] 2와 3 사이에는 필요한 숫자가 없다. 3과 6사이에는 4,5. 6과 8사이에는 7. 총 3개의 숫자가 필요하다. 숫자 사이에 필요한 숫자의 개수를 구하기 위해서 (b>a) b-a-1 방정식을 사용했다. ex] 3,6사이. 6-3-1 = 2
for문을 사용하여 배열의 원소사이에 필요한 숫자의 개수를 구해준 뒤 순차적으로 더해 a값에 저장한다. 그리고 a값을 반환하였다.
'전공수업 > Python' 카테고리의 다른 글
파이썬의 딕셔너리 (0) | 2020.03.03 |
---|---|
파이썬 기본문법 - 2 (0) | 2019.11.03 |
파이썬 기본문법 - 1 (0) | 2019.10.30 |
Python 기초문제 1 , 2번 (0) | 2019.10.30 |