TIL_221122

KIXIAM·2022년 11월 22일
1

algorithm

목록 보기
1/3
post-thumbnail

문자열 반대로 출력하기

일단 자바스크립트부터...

python 문법과 좀 다르기도 하고 어떻게 보면 상세하게 코드가 표현되기 때문에 이해가 잘된다. for 반복문이 아무래도 그렇다.

function reverseString(str) {
  let reversedStr = "";
  for (let i = str.length - 1; i >= 0; i--) {
    reversedStr += str[i];
  }
  return reversedStr;
}
let result = reverseString('i am sam');
console.log(result);

결과물..

일반적으로 알던 for문이 아닌 반대로 타고 내려오는 식의 for 문이다. 여기서 알아야할 점은 문자열을 index로 접근이 가능하다는 것이다.

⭐️ 즉 문자 array도 index를 이용해서 배열의 element에 접근할 수 있다.

❌ 배열을 선언해서 문자열을 담아야 된다고 처음에 생각을 하였다.
문자열의 길이만큼 인덱스가 시작하여 1씩 감소하여 내려오는 식이다. 해당 값이 바로 reversedStr 변수에 할당이 되어 나중엔 결국 반대로 문자열을 출력해서 원하는 결과물이 나온다.


Python !

일단 3가지 방법으로 Google과 freecodeCamp에서 얻은 정보로 정리해보았다.

# 1번째 방법
def reverseStr1(str):
    reversedStr = ''
    for i in str:
        reversedStr = i + reversedStr
    return reversedStr

첫번째 방법은 i 와 reversedStr 문자열을 합치는 방법이다. input한 문자열의 요소들을 차례차례 호출하여 그 앞에 저장시킨 후 결과물을 그대로 출력한다.
ex)
hello
ell0 -> h
llo -> e + h
lo -> l + e + h
o -> l + l + e + h
결과 : olleh


# 2번째 방법
def reverseStr2(str):
    reversedStr = ''
    for i in reversed(range(len(str))):
        reversedStr += str[i]
    return reversedStr

보통 range(value)는 value까지 증가하는 거였다면 reversed는 반대로 감소한다. str의 인덱스를 반대로 불러주기 위해 사용하였다. 또 str의 길이를 알기위해서 len으로 감싸주었다.


# 3번째 방법
def reverseStr3(str):
    reversedStr = ''
    for i in range(len(str)-1, -1, -1):
        reversedStr += str[i]
    return reversedStr

range(start, stop, step) 의 방식을 이용해 str 내부에 접근 step값과 stop을 -값으로 감소시키는 방법으로 index 값을 할당했다.


result1 = reverseStr1('nodejs')
result2 = reverseStr2("nodejs")
result3 = reverseStr3("nodejs")
print(result1)
print(result2)
print(result3)

결과물!!!

3개의 "nodejs" 문자열이 반대로 출력되어 원하는 값으로 출력되는 것을 볼 수 있다.

정리

컴퓨터가 알아듣는 언어로 전달하기 위해서는 컴퓨터 입장에서 일단 생각하고 이해해야 한다. 일단 노트에 그려보고 알고리즘 관련 수업이나 CS 강의를 들어야 한다.

profile
Project Oriented Learning 🔥

0개의 댓글