맛동산

파이썬 함수_실습 본문

파이썬/기초

파이썬 함수_실습

오지고지리고알파고포켓몬고 2016. 10. 6. 19:50

파이썬으로 쿠팡 리크루팅 인터뷰때 나온 문제를 풀어보겠음

 

중첩리스트를 순서대로 꺼내서 하나의 리스트로 만드는 것임

 

 

뭐 대충 이런건데 솔직히 자바에 [1,2,3...8,9]같은 형식을 가진 리스트가 있는지도 모르겠고 또 그게 리스트 형인지 판단할 수 있는 함수가 있는지도 모르겠음.

파이썬을 좀 만 빨리 시작했더라면 쉽게 풀었을 문제를 자바로 푸느라 시간 다잡아 먹은게 안타까울 따름..

 

아무튼 inputList라는 임의의 리스트가 주어졌을 때, 자료형을 리턴하는 type()에 사용할 껍데기인 sampleList를 만들고 요소를 담을 resultList를 선언함

 

함수에서 inputList의 요소(yoso)가 List 타입인지 확인하고 맞다면 재귀호출, 아니라면 resultList에 append함

 

 

다음은 개미수열.

개미수열은

1                ->1이 1개

11              ->1이 2개

12              ->1이 1개 2가 1개

1121          ->1이 2개 2가 1개 1이 1개

122111       ->1이 1개 2가 2개 1이 3개

112213       ->             ....

로 나열되는 수열임

 

자신과 다음값을 비교할 point를 만들고 최대길이-1 까지 비교하며 숫자가 달라지는 부분까지 count를 하고 returnAnt라는 변수에 삽입함.

 

위에 주석은 처음 설계 때 Ant[0]과 Ant[1]을 비교해야하는데 첫 Ant의 length()는 1이므로 없는 값을 참조하는 에러 발생을 방지하기 위해 만들었었음.

 

근데 while문 작성을 끝내고보니까 point<len(a)-1이 아닐때 수행문에서 a[point]와 a[point-1]을 비교하는 부분이 있는데 length()가 1일때 a[0]과 a[-1]은 인덱싱상 같은친구를 참조하기 때문에 주석부분이 없이도 정상 작동할 수 있었음.

 

참.. 파이썬은 여러모로 유연한 언어라고 생각함.

 

이것도 a[point]하고 쉽게 꺼낼걸 자바로 할 땐 a.substring(point,point+1)이런식으로 길어지고 어쩌고..

'파이썬 > 기초' 카테고리의 다른 글

파이썬 파일 입출력_파일읽기  (3) 2016.10.07
파이썬 파일 입출력_파일생성  (0) 2016.10.07
파이썬 함수_이론  (0) 2016.10.06
파이썬 제어문_for문  (0) 2016.10.06
파이썬 제어문_while문  (0) 2016.10.06
Comments