주간 회고

LEE GYUHO·2024년 9월 1일
0

2024-09-01

공부

  • 알고리즘 공부를 하며 JS를 거의 처음 공부하기 시작했을 때 배운 XOR에 대한 문제가 나왔는데 써본 적도 없고 문제로도 처음 접해서 문제를 봤을 때 어떻게 풀어야 하는지 기억이 나지 않았다. 그래서 다시 찾아보고 공부를 하면서 XOR의 중요한 성질과 XOR를 사용하면 temp 없이 두 숫자의 값을 교환할 수 있다는 것을 알게 되었다.

    1. 우선 XOR의 성질 3가지이다.

    첫 번째 a ^ b ^ c = a ^ c ^ b
    XOR 연산은 순서를 바꿔도 같은 결과가 나온다.

    두 번째 a ^ a = O
    자기 자신과 XOR 연산을 하면 O이 된다.

    세 번째 a ^ O = a
    O과 XOR 연산을 하면 자기 자신이 나온다.

    2. 다음으로 temp 없이 두 숫자의 값을 교환하는 방법이다.

    보통 두 변수의 값을 교환하는 건 아래와 같이 사용한다.
    temp = a
    a = b
    b = temp

    하지만 XOR의 성질을 이용하면 아래와 같이 temp 없이도 교환이 가능하다.
    a = a ^ b
    b = b ^ a
    a = a ^ b

    첫 번째 연산의 결과로 a에는 a^b가 들어가고 두 번째 연산의 결과로 b에 b^a^b가 들어가는데 이는 b^b^a = O^a = a가 된다.

    이 방법을 사용하면 추가 메모리 없이 두 변수를 바꿀 수 있다.

  • splice의 잊고 있던 사용 방법이 하나 다시 알게 되었다. 보통 splice를 사용할 때는 아래 예시와 같이 두개의 인자를 사용한다.
    ex) ans.splice(0, 1)
    첫 번째 인자는 시작 지점 두 번째 인자는 갯수이다.
    그런데 분명히 코드를 보던 중 splice를 사용하는데 인자가 3개가 있는 것을 보고 무엇인지 기억이 안나서 검색을 해서 다시 알게 되었다.
    세 번째 인자는 첫 번째 인자의 위치에 추가할 값이다. 그리고 기존 요소는 삭제되지 않고 삽입된 요소 뒤로 밀려난다.
    기존 요소가 삭제되지 않는다는 점에서 유용하게 쓰일 것 같아서 꼭 기억하고 있어야겠다.

운동

  • 이번에도 역시 꾸준하게 5일! 열심히 했다. 근데 이번에는 유독 하체 운동을 한 후 2-3일동안 하체가 너무 아팠다. 그치만 아프다는 것은 운동을 열심히 했다는 것이기 때문에 뿌듯했다 😀

취업

기타

profile
누구나 같은 팀으로 되길 바라는 개발자가 되자

0개의 댓글