홍루피의 블로그

고정 헤더 영역

글 제목

메뉴 레이어

홍루피의 블로그

메뉴 리스트

  • 홈
  • 방명록
  • 글쓰기
  • 루피의 지식 (118)
    • iOS (45)
      • 스탠포드 iOS 강의 (13)
      • iOS 지식 (23)
      • 디자인 패턴 (0)
      • CI&CD (3)
    • 알고리즘 (64)
    • 잡다구리 (9)
      • 웹 & 서버 (5)
      • 안드로이드 (2)
    • 일상 (0)

검색 레이어

홍루피의 블로그

검색 영역

컨텐츠 검색

전체 글

  • 계단오르기 [DP]

    2021.04.06 by 홍루피

  • 네트워크 선 자르기 [DP]

    2021.03.29 by 홍루피

  • 90. 라이온킹 심바[BFS]

    2021.03.24 by 홍루피

  • 89. 토마토 [BFS]

    2021.03.22 by 홍루피

  • 88. 미로의 최단거리 [BFS]

    2021.03.17 by 홍루피

  • 87. 섬나라 아일랜드 [BFS]

    2021.03.12 by 홍루피

  • 86. 피자배달 거리 [DFS]

    2021.03.10 by 홍루피

  • 조합 [DFS]

    2021.03.08 by 홍루피

계단오르기 [DP]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 - 네트워크 선 자르기와 같은 방식으로 풀면 되는 문제 - 점화식을 구하면 f(n)=f(n-2)+f(n-1) - 메모이제이션을 통해 하나씩 값을 기록해 가며 DFS함수를 사용한다 #include #include int arr[101], n; int DFS(int L){ if(arr[L]>0) return arr[L]; if(L==1 || L==2){ return L; }else{ return arr[L]=DFS(L-2)+DFS(L-1); } } int main(){ scanf("%d", &n); printf("%d\n", DFS(n)); return 0; }

알고리즘 2021. 4. 6. 21:08

네트워크 선 자르기 [DP]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 (1) Bottom Up : 작은문제부터 큰 문제로 키워나간다 - 주어진 길이의 네트워크 선을 자르는 방법을 탐색한다. - 길이가 1이라면 1가지, 길이가 2라면 1+1/2+0으로 2가지 => 이런 기본값들은 dy배열에 저장해놓고 시작한다. - 길이가 3이라면 1+1+1, 2+1, 1+2 => 3가지 => dy[1]+dy[2] - 점화식을 구하면 f(n)=f(n-2)+f(n-1) #include #include using namespace std; int dy[50]; //DP1. 네트워크 선 자르기(Bottom-Up) //작은 문제 > 큰 문제로 확대 int main(){ ..

알고리즘 2021. 3. 29. 20:16

90. 라이온킹 심바[BFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 기존에 풀었던 BFS보다 난이도가 상당하다. 1. Loc의 operater - 최소힙을 이용해 거리가 작은 순으로 정렬 - 심바는 토끼가 여러마리 있을 때 가장 가까운 거리>거리같을때는 위쪽 > 같은 행이라면 왼쪽으로 이동한다. => 코드의 if문 (1) 거리가 같지 않을 때는 거리가 작은순으로 정렬 (2) 거리가 같고 행이 다를 경우 위쪽 (x가 작으면 위쪽) (3) 거리가 같고 행이 같을 시 왼쪽 (y가 작으면 왼쪽) 2. map에서 해야할 처리 (1) 입력을 통해 토끼, 심바의 위치를 받고 9가 입력될 시 simba의 x, y좌표에 i, j값 입력 (2) 이후 해당 좌표..

알고리즘 2021. 3. 24. 23:41

89. 토마토 [BFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 - 토마토가 다 익는 날짜를 출력하는 문제 - tom 배열에 입력을 받고 1일때마다 큐에 넣는다. (큐에는 Loc 형이 들어가서 (x, y)형태로 저장이 된다.) - 상하좌우 탐색 하는데 새로구한 좌표에 들어있는 값이 0일때만 경계 안에 있는지 확인 후 큐에 넣어준다. - 큐에 넣은 후 해당 배열의 값을 1로 만들고(check) - dis배열(해당 좌표의 토마토가 익는 날짜수를 갖고 있음)의 카운트를 dis[tmp.x][tmp.y]에 들어있는 값+1로 한다. - 플래그 f를 사용해 tom배열에서 0이 있는지 검사 => 0이 남아있으면 f=0으로 변경 => -1출력 - f=1이..

알고리즘 2021. 3. 22. 16:26

88. 미로의 최단거리 [BFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 문제는 비공개로 입력예제와 출력예제만을 가지고 포스팅 풀이 - 앞서 푼 섬나라 아일랜드 문제와 매우 유사한 BFS 문제 - 상하좌우 좌표를 배열로 미리 명시해 두고 이동할 좌표를 계산해 놓아야 함 - 첫 위치를 큐에 넣고 map[1][1]=1로 체크 한다. - 큐의 첫번째 요소를 tmp에 저장해 놓고 Q에서 pop한다. - 4번의 반복으로 상하좌우 좌표값을 xx, yy로 만들며 0(도로)인 곳을 탐색 => 이때 좌표가 정해진 7*7을 벗어나지 않도록 if문 안에 조건 추가 - 만약 도로라면 dis배열의 값을 업데이트하는데 이때값은 dis[tmp.x][tmp.y]+1의 값을 가짐 #..

알고리즘 2021. 3. 17. 21:18

87. 섬나라 아일랜드 [BFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 - queue를 이용한 BFS 문제 - 좌표 => Struct를 사용해 저장한다. - 상하좌우대각선 => dx, dy 활용해 좌표를 먼저 구한후 배열에 대입한다. - 섬을 발견하면 일단 큐에 넣고 그 섬의 위치는 0으로 만든다. - 그 섬과 연결된 섬을 찾기 위해 상하좌우대각선의 좌표들을 탐색해 큐에 넣는다. 큐에 넣은 후에는 그 위치에 0을 항상 표시해준다. - 큐가 비면 연결된 하나의 섬을 찾았다는 것이고 카운트가 하나 증가한다. #include #include #include using namespace std; int n, map[30][30], cnt=0; int d..

알고리즘 2021. 3. 12. 13:01

86. 피자배달 거리 [DFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 - 앞서 풀었던 조합을 이용해서 피자 가게를 선별한다. - 모든 가게를 선별하면 ch배열에 선별한 피자가게 번호가 들어간다. - 이때 레벨은 m과 같아지고 집 선택한 피자가게(m개) 거리를 구하는데 이 중 가장 작은 값을 dis에 저장 한 후 sum에 더한다. - 모든 집의 최소 피자배달거리들이 sum에 저장되고 이 때 sum은 도시의 피자배달거리가 된다. - 한 개 경우(L==m)의 도시의 피자배달거리를 구하면 res와 비교해서 작으면 res를 업데이트 한다. #include #include #include using namespace std; vector hs; vecto..

알고리즘 2021. 3. 10. 19:57

조합 [DFS]

인프런 - it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 강의를 바탕으로 공부한 내용입니다. 풀이 - nCr 조합 구하기 - for문이 s부터 n까지 돈다. => s~n-1까지 가지가 뻗는다. [예시] 6C4의 첫번째 사이클 s=0 => 가지는 0부터 5까지 / L=0 => ch[0]=0; s=1 => 가지는 1부터 5까지 / L=1 => ch[1]=1; s=2 => 가지는 2부터 5까지 / L=2 => ch[2]=2; s=3 => 가지는 3부터 5까지 / L=3 => ch[3]=3; s=4 => L이 r과 같다(nCr에서 r만큼 뽑는다.) => 0, 1, 2, 3 출력 #include #include #include using namespace std; int n, r;..

알고리즘 2021. 3. 8. 21:46

추가 정보

인기글

최신글

페이징

이전
1 ··· 4 5 6 7 8 9 10 ··· 15
다음
TISTORY
홍루피의 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바