본문 바로가기
python

2020.09.03_알고리즘_자연수 뒤집어 배열로 만들기

by 해맑은 코린이 2020. 9. 3.

2020.09.03_알고리즘_자연수 뒤집어 배열로 만들기 정리노트

 

짝짝... 점점..... 내가 풀 수 있는 쉬운 문제가 사라져...간다... ㅋㅋㅋㅋㅋㅋㅋㅋ하지만 개념 정리도 할 겸 간단한 포스팅 하나 들고옴!!!!

 

 

출처 - 프로그래머스

 

 

 

이걸 가져온 이유는 저번에 내가 알고리즘을 하면서 깨우친 숫자열은 분리가 안된다고 

 

korinkorin.tistory.com/13

 

2020.09.01_알고리즘_자릿수 더하기

2020.09.01_자릿수 더하기_알고리즘_정리 노트_ 오늘은 자릿수 더하기 알고리즘! 쉽고 간단하지만, 중요한 개념들이 많이 들어있고 개인적으로 다른 사람 풀이들이 너무 신박해 포스팅으로 남겨보�

korinkorin.tistory.com

 

요 포스팅에서 말했기 때문에 쉽게 풀었음 !! 오늘은 간단하게 거꾸로 뒤집는 방법을 2개를 정리해볼 거 같다! 

 

 

 

 

 

 

먼저 내 답!  먼저 문자열로 만들어주고 , for문을 사용해 하나씩 분리한 후, 다시 int 로 변환하여 빈 리스트에 담아주었다.

 

자세한 내용은 저 위에 포스팅에 참고 ㅎㅁㅎ 

 

뭔가 설명할 게 없으니 어색하군 쨋든 그렇게 만들어주게 되면, 하나하나 숫자가 분리되면서, [ 1, 2, 3, 4, 5 ] 가 담기게 된다 !  오늘 정리할 내용은 뒤집는 여러 가지 방법 정리하기!!!

 

 

먼저 내가 쓴 방법 부터, 

 

처음에는 슬라이싱 방법을 사용하여 [-1: ] 을 썼었는 데, 생각해보니 그냥 -1 번째 부터 끝까지 슬라이싱 해줘라기 때문에 당연히 끝값만 슬라이싱한다...ㅎ...

 

슬라이싱 개념은 여기에 포스팅팅

 

korinkorin.tistory.com/8

 

2020.08.26_알고리즘_완주하지 못한 선수

오늘은 이틀을 나를 괴롭혔던..(하지만 그냥 내가 조져짐..) 완주하지 못한 선수 정리노트!_! 복잡하지만, 잘 읽어보면 그냥 참가자 중에 한명만 완주를 못하는데 그 선수를 리턴하면 된다! 동명��

korinkorin.tistory.com

 

 

그래서 찾아보다가 거꾸로 출력하는 방법의 슬라이싱은 [ : :-1] 를 쓰게 되면 뒤집어서 출력한다. 

 

응용 방법도 있다.

 

리스트 안에 들어있다면, 전부 가능한 방법이라 유용하게 쓰일 것 같아 가져왔음!!

 

 [ 1, 2, 3, 4, 5 ] , ["1", "2" ,"3", "4", "5" ] 전부 가능 , "abcde" 처럼 합쳐진 문자열도 리스트에 넣어서 한번에 역순으로 출력이 가능하다. 튜플도 당연히 가능!

 

 

 

 

역순으로 리스트 슬라이싱하기

 

a =  [ 1, 2, 3, 4, 5 ]

 

a [ 4 : 1 :-1 ] >>>> 4번째 숫자부터 2번째 숫자까지 역순으로 출력 -- 2번째 숫자는 기본 슬라이싱처럼 하나 작은 숫자번째 까지 출력. 

출력값>>>>> [ 5,4,3 ]

 

 "abcde" 와 같은 문자열이면 , "edc" 출력

 

 

a [ 2 : :-1 ] >>>> 2번째부터 0번째 까지 역순으로 출력

출력값>>>>> [ 3,2,1 ]

 

이러한 과정으로 [ : : -1 ] 을 해주게 되면 처음부터 끝까지 거꾸로 출력할 수 있다!

 

 


 

다른 사람의 풀이를 하나 가져와서 하나 더 정리해보자.

 

 

 

출처 - 프로그래머스

 

 

다음은 reverse 함수로 뒤집는 방법이 있다. reverse함수도 sort와 마찬가지로 reversed를 지원한다. 

이 둘의 차이를 정리 해보기!! ( sort sorted 와 거의 유사하다. )

 

sort 기능을 보고 싶다면,

 

korinkorin.tistory.com/2

 

2020.08.19 알고리즘_k번째수

2020.08.19 k번째 수 알고리즘 정리노트__ 블로그를 시작하는 날짜이니 특별히 2개 올린다.. 의지 꺾이지마라 .. 오늘은 카페에서 에어컨 빵빵하게 틀었으니 예전부터 미뤘던 k번째 수도 머리에 머리

korinkorin.tistory.com

요기 포스팅으로!! 

 

 

 

 

reverse 

는 파이썬 내장 함수로 리스트를 뒤집어 주는 역할을 하는 함수이다. 반환 값 없이 리스트 자체를 뒤집는다.

 

a = [1 ,2, 3 ]

b = a.reverse()

 

print(a) >>>>> [ 3 ,2 ,1 ]

print(b) >>>>> None.

 

를 하게 되면, b 에는 마찬가지로 아무것도 담기지 않고, a 라는 리스트 자체가 바뀐다. 그래서 b 를 써줄 필요도 없겠지! 

 

 

 

reversed

reverse 도 reversed 를 지원한다. reversed는 뒤집어진 리스트를 반환한다.

 

a = [ 1 ,2, 3 ]

b = reversed(a)

 

print(a) >>>>> [ 1, 2, 3 ]

print(b) >>>>> [ 3, 2, 1 ]

 

지금 보면 값은 똑같지만 각 변수에 담기는 값은 다르다 reversed 는 b 에 다가 [ 3 ,2 ,1 ] 을 반환해 담아주고, a 는 그대로 a 의 값을 담아준다. 

 

 


 

 

위로 돌아가서 다른 사람 코드를 해석하면 , 먼저 문자열 리스트를 a에다가 담아준 후, a 라는 문자열 리스트를 뒤집는다.

밑의 print에 들어있는 결과를 인용하면 [ "54321" ] 가 a에 담기게 된다.

이 a를 for문으로 돌려서 분리해준 후 다시 int 를 써서 뒤집힌 숫자열로 분리해서 return 해준 것이다. 여기서 또 for 문을 한줄로 적는 방법 간단히 순서를 통해 설명 ( 아마 다른 포스팅에서 한 거 같지만 간단하게 적자. )

 

[ int(i) for i in a ]

 

 반환값 for문 + 조건이 있다면 뒤에 if 문

 

 

이렇게 나중에 나올 결과 값, 즉 반환 값을 맨 처음에 적어주고 , 뒤에 for문, if문 순서대로 적으면 for문을 한줄에 적을 수 있다! 

 

휴.. 나는 언제쯤 한줄에 적는 습관을 들일까.. 맨날 적는대로 적다보니.. 습관을 고쳐야겠다. 훨씬 보기 좋고 해석하기도 쉽다...

 

이렇게 오늘은 간단하게 리스트 요소들을 거꾸로 뒤집는 방법들을 간단하게 정리해보았다! 점점 뭔가 포스팅이 늘면서 이미 겹치는 내용이 많은 것 같아서 글이 짧아져서 기분이 좋지만...ㅎ.. 그만큼 내가 지금 쉬운것만 찾고 있는거 같아 그 점은 반성하게 된다. 쨋든 알고리즘 오늘 포스팅 끝!

 

 

 

댓글