[231121] Today I Learned

YoungHyun Kim·2023년 11월 21일
1

TIL ✍️

목록 보기
1/68

SWIFT

[프로그래머스] 명예의 전당

  • Array.insert(_ newElement: ,_ at: ) 메소드

    • insert 메소드는 인자로 가지는 newElement와 at 을 보면 어떤 식으로 사용하는지 대충 엿볼 수 있는데, 새로운 요소값을 원하는 위치에 삽입할 수 있는 메소드이다.
  • Array.append(_ newElement: ) 메소드

    • append 메소드는 배열에 요소를 그냥 더하는 것이다. 원래의 배열에 넣고 싶은 요소값을 배열의 맨 뒤에 추가하는 메소드.
    • [10] 메소드에 append(20)을 한다면, [10, 20] 이 되는 것으로 생각하면 된다.
  • Array.remove(_ at: ) 메소드

    • 원하는 위치에 있는 요소값을 제거할 수 있는 메소드. at 뒤에 인덱스값으로는 정수값을 사용할 수 있다.
  • Array.sort() 메소드

    • sort 메소드는 어떤 배열의 사본을 생성해서 정렬하는 것이 아닌, 그 배열 자체를 정렬하게 해주는 메소드이다.
    • 무슨 말이냐면,
    arr: [Int] = [10, 20, 30]
    
    arr.sorted() // 이렇게는 사용할 수 없음. sorted 메소드는 사본을 생성한 후 정렬된 "사본"을 반환하는 함수이기 때문에.
    arr = arr.sorted() // 이렇게 사용해야 함
    
    arr.sort() // 이런 식으로 사용해도 된다는 것, sort 메소드는 arr값 자체를 정렬하는 동작을 하는 메소드임(반환값이 없음)
    • sort() , sorted() 두 메소드의 차이를 잘 알아두어야 한다.

[프로그래머스] 2016년

  • 이 문제를 해결하는 데에는 딱히 새로운 메소드를 사용하거나 공부하지 않았다.
  • 중요한 점은, 문제의 조건을 코드로 나타낼 때 창의적으로 생각해서 나타내는 데에 조금 더 노력해야겠다는 점이다.
    • 2016년 특정 월 일을 입력으로 넣으면 무슨 요일인지 문자열로 반환하는 문제였다.
    • 윤달이니 뭐니 크게 생각할 필요 없이, 요일은 7일 주기를 가지고 반복된다는 것과 각 달이 며칠씩 가지고 있는지 정리하고 계산하면 풀 수 있었던 문제다.

저 두 문제를 한 가지 방식이 아닌 여러 가지 방식으로 풀어내는 방법을 고민하다보니 이런 저런 재밌는 방법도 생각해낼 수 있었고, 문제를 해결한 상태에서 다른 사람들의 답안을 들여다 보니 참 기상천외하고 간단한 방법들이 많았다.

앞으로는 창의적으로 문제를 푸는 방법을 더 생각해보고 싶다.

그리고 Array.map , Array.reduce ... 이런 메소드 사용해서 한 줄~ 두 줄로 문제 풀어내시는 분들 많던데 진짜 부럽다...
내일은 좀 들여다보고 어떻게 사용해야 할지 정리해야겠다.

profile
iOS 개발자가 되고 싶어요

0개의 댓글