프로그래밍

[문제 풀이] Programmers - 문자열 돌리기

1학년 2024. 5. 12. 23:05

abcde와 같이 입력값이 주어졌을 때 시계방향으로 90도 돌려서 출력값이 나오도록 하는 문제이다.

사실 처음봤을 때는 문자열을 시계방향 90도로 돌려서 출력해주는 함수가 있는줄 알았다...

 

간단하게 for문을 이용해서 처음에 입력한 값들을 출력해주었다. 

 

처음에 str로 문자열을 입력받고 출력해주는데 

str = input()이라는 문장을 수행하였을 때  

a b c d e
0 1 2 3 4

 

메모리에는 이와같은 형태로 각 순서번호가 부여된 채로 저장이 된다.

그렇기 때문에 출력할 때도 각 순서번호를 이용해서 문자에 접근이 가능하다.

 

for문을 이용해서 출력해보자

 

for문 작성형식

 

for 변수 in 리스트 등:

와 같이 작성하는 게 기본 문법이다.

리스트나 튜플 문자열 등의 값이 첫번째 값부터 하나씩 변수에 들어가 출력이 되는 원리이다.

 

그리고 여기서 작성할 때 조심해야하는 부분은

for문이나 if문 등을 작성할 때 

콜론(:)이후 조건이 만족됐을 때 수행하는 부분을 들여쓰기로 지정한다.

for 변수 in 문자열 :

        print(변수)

        print("~~~")

 

이런식으로 작성이 된다면 변수에 해당하는 값과 다음 print 문장까지 출력이 된다.

하지만 여기서

for 변수 in 문자열 :

        print(변수)

        print("~~~")

print("???")

 

라고 작성을 하게되면 ???문장은 반복문을 통해 출력되지않게된다. 

파이썬은 들여쓰기로 수행하는 부분을 지정하기때문에 

print("???")는 for문 수행 결과가 아닌 for문 수행이후 출력되는 문장이다. (for문에 의해서 출력이 되는 것이 아니라는 말이다.)

 

이러한 규칙들을 조심해서 작성을 해보면

str = input()                                     # abcde 입력

현재 메모리 상태

a b c d e
0 1 2 3 4

 

for i in str:

      print(i)

 

str의 첫번째 요소인 a부터 차례대로 i에 대입되어 출력이 된다.