Skip to content

Latest commit

 

History

History
93 lines (59 loc) · 2.53 KB

2021_10_22.md

File metadata and controls

93 lines (59 loc) · 2.53 KB

Info

날짜 : 2021년 10월 22일 금요일

시간 : 21: 00 ~ 22:55

참석자 : 김우찬, 조동균, 박종근

사용 툴 : Discord

작성자 : 박종근

진행 내용

1. 코드 리뷰

  1. 오픈 채팅방

    🔥 <Key , Value> 를 저장하는 로직에서는 HashMap이 시간복잡도 O(1)로 매우 빠름으로 사용할 것.

  2. 숫자 문자열과 영단어

    특이사항 없음.

  3. 컬리링북

    단지 번호 붙이기 하위 버전이라 특이사항 없이 풀었음.

2. 삼성 A형 모의고사 복기

  1. 머리속으로 로직이 완벽하게 정리되지 않은 상태에서 풀이 시 실패 가능성이 높다. 경우의 수와 예외를 따져보고 개인적인 시뮬레이션이 완벽하게 정리가 되었을 때 코드 작업으로 넘어 갈 것. 조급하면 망한다.
  2. 특정 조건에 도달해도 끝이 아니고 그 외에도 가능한 모든 경로(경우)를 다 확인해야하는 문제일 경우 백트래킹을 해야하는데 DFS가 유리하다.
// 김우찬 부분 코드 출처 
void bfs(int x, int y, int cnt) {
   if (cnt == 3) {
      return;
   }

   for (int d = 0; d < 4; d++) {
      for (int k = 1; k < n; k++) {
         int nx = x + dx[d] * k;
         int ny = y + dy[d] * k;

         if (nx >= 0 && ny >= 0 && nx < n && ny < n && b[nx][ny] == 1) {
            for (int kk = 1; kk < n; kk++) {
               int mx = nx + dx[d] * kk;
               int my = ny + dy[d] * kk;
               if (mx >= 0 && my >= 0 && mx < n && my < n) {
                  if (b[mx][my] == 0) {
                     bfs(mx, my, cnt + 1);
                  }
                  else if (b[mx][my] == 1) {
                     // 특정 상황 진행
                     b[mx][my] = 0;
                     if (!check[mx][my]) {
                        result++;
                        check[mx][my] = true;
                     }
                     // 다음 재귀함수 보내기
                     bfs(mx, my, cnt + 1);
                     // 다음 재귀함수 바로 아래 상태 복구하여 특정 상황 진행 이전상태로 변경
                     b[mx][my] = 1;
                     break;
                  }
               }
            }
            break;
         }
      }
   }
}

다음 스터디(10월 26일 화) 풀어올 문제

프로그래머스 크레인 인형 뽑기 게임 https://programmers.co.kr/learn/courses/30/lessons/64061

프로그래머스 단체 사진 찍기 https://programmers.co.kr/learn/courses/30/lessons/1835