항해99 31일차

coffeed-cat·2021년 6월 19일
0

항해99 기록

목록 보기
32/90

2021/06/19 Chapter 2 : 6일차

알고리즘 달렸다.

어제 마무리를 못한 BFS&DFS문제를 풀었다.

오늘 다시 보니 문제가 많았다.
먼저, DFS함수는 새로운 인접노드를 보면 바로 점프하도록 짰더니 1-2 1-3 이렇게 연결된 그래프에서는 1로 시작하면 3으로 못가고 끝났다.
그래서 다시 스택쓰는 구조로 바꿨다.
아직 방문은 안했지만 스택에는 들어있는 노드를 만나면 마지막으로 보내도록 코드를 짰다.

통계학이라는 문제를 푸는데, 리스트 하나로는 최빈값과 중앙값,범위를 동시에 구하기 힘들었다. 그래서 그냥 최빈값을 구하기 위한 딕셔너리를 따로 만들어서 사용했다.
이때 sorted에 조건을 두개붙이니 편했다. 람다식은 대단하다.

종이접기 문제는 해답을 안보고 스스로 처음부터 끝까지 풀어서 너무너무 기뻤다. 2차원배열슬라이스와 2중 for문 탈출을 배웠다.

백트래킹문제가 나온김에 공부를 했다.
N과M이라는 문제였는데 애초에 이 문제의 상태공간트리를 어떻게 만들지 감이 안와서 솔루션을 참고했다.
내가 참고한 사람의 코드는 구조가 창의적이고 재미있었다.
그런 풀이방법밖에 없는것일지도 모르겠지만 창의적이라고 느꼈다.
나도 그런 코드를 짜고싶다.
재귀함수와 스택을 사용해서 풀었다.

N-Queen이라는 문제는 아예 감이 안오고 설명을 봐도 모르겠다.
같이 풀 사람을 구해야겠다.

오늘 배운것

  • 2차원 배열 슬라이스하는 방법
    8*8의 2차원 배열의 4등분중 하나를 꺼내려면
    [row[:4] for row in square[:4]]
    이렇게 먼저 가로배열 4개를 뽑고 그 가로배열의 요소 4개를 저장한다

  • 2중 for문을 탈출하려면, 불린변수를 하나 만들어서 안쪽 for문이 break하기 전에 True로 만든다. 바깥 for문의 끝에 조건문으로 break하도록 만들면 된다.

  • ''.join() 함수를 배웠다.
    앞에 붙은 문자를 구분자로서 String배열 값 사이사이에 넣어서 반환해준다

해야 할 일

  • ⌛체크아웃!!(매일매일)⏳

  • WIL 작성

  • DP 복습

  • ❔Heap의 최대높이, insert 시간복잡도 복습
    하긴 했는데 아직도 이해가 안간다

  • ❗숙제풀기만하고 아직 안본 설명영상들 한번씩 시청

    • ❗3주차 숙제
    • ❗4주차 숙제
    • ❗2주차 더하거나빼거나 문제 복습
  • AWS Lambda, 마이크로 서비스 조사

profile
공부중

0개의 댓글