SlideShare a Scribd company logo
1 of 13
Download to read offline
Algostudy
SOCC 오혁
oh4851@gmail.com
1회차 스터디
10 LAKE
문제
호수의 개수를 구하는 문제
(상,하,좌,우,대각선으로 연결된 곳 W(물)는 같은 호수로 본다)
W 물
. 땅
W . . . W .
. W W . W W
. . W . W W
. . . . W .
. W . . W W
W W . . . W
. W . W . W
. W W . . W
입력
행 N , 열 M 이 입력으로 주어진다.
(1 <= N <= 100; 1 <= M <= 100)
입출력예
입력: 8 6
출력: 3
문제풀이
영상처리의 라벨링과 동일한 작업 과정을 거침
1. 최초로 W가 발견되는 위치까지 탐색
2. W가 발견 될 경우 이를 n번째 호수로 표시하고
배열의 인접한 점을 탐색
3. 만약 인접한 곳에 W가 없다면 1.의 위치에서 다
시 W가 발견되는 지점을 찾고 2., 3.의 과정 반복
W . . . W .
. W W . W W
. . W . W W
. . . . W .
. W . . W W
W W . . . W
. W . W . W
. W W . . W
문제풀이
W와 .을 입력 받으면
W -> 255(흰색)
. -> 0(검은색)
으로 매핑함
문제풀이
왼쪽에서 오른쪽, 위에서 아래의 순서로
W(255)를 발견할때까지 배열을 탐색
좌측 그림의 예에서는 (0, 0)에서 255인 점을 발견
스택에 (0, 0)을 PUSH
(0, 0)
STACK
문제풀이
스택이 비어있지 않다면, POP을 수행하고 해당 위치
를 COUNT값으로 표시함
그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배
열의 유효범위를 벗어나지 않고 255인 위치이면 해
당 점을 PUSH하고 -1로 표시(재접근 방지)
1
(1, 1)
(0, 0)
STACK
문제풀이
마찬가지로 스택이 비어있지 않다면, POP을 수행하
고 해당 위치를 COUNT값으로 표시함
그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배
열의 유효범위를 벗어나지 않고 255인 위치이면 해
당 점을 PUSH하고 -1로 표시(재접근 방지)
1
1
(2, 2)
(1, 2)
(1, 1)
STACK
문제풀이
마찬가지로 스택이 비어있지 않다면, POP을 수행하
고 해당 위치를 COUNT값으로 표시함
그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배
열의 유효범위를 벗어나지 않고 255인 위치이면 해
당 점을 PUSH하고 -1로 표시(재접근 방지)
1
1
1
(2, 2)
(1, 2)
STACK
문제풀이
(1, 2)인 점을 POP해서 COUNT(1)로 표시하고 나면
스택이 비게 되므로 첫번째 호수를 찾는 작업을 마침
그 후 (0, 0)에서부터 다시 W(255)를 탐색해 나감
1
1 1
1
(1, 2)
STACK
문제풀이
(0, 4)에서 다음 W(255)를 발견하고 앞선 과정과 마
찬가지로 반복함
1
1 1
1
(0, 4)
STACK
문제풀이
위의 과정을 반복하면 좌측과 같은 결과가 완성됨
호수의 갯수는 COUNT값을 출력하면 됨
1 2
1 1 2 2
1 2 2
2
3 2 2
3 3 2
3 3 2
3 3 2 STACK
소스코드
입력: N, M을 입력받고 W(물)입력 시 255로 매핑
탐색: 배열을 탐색하며 W(255)인 위치를 찾고
PUSH
라벨링: 스택에서 POP한 점을 COUNT값으로 표
시하고 인접 배열 탐색
- PUSH, POP은 자유롭게 구현 가능
출력: 라벨링을 마친 후 COUNT값 출력
추가정보
해당 문제는 위와 같은 알고리즘 외에 아래의 알고리즘으로도 해결 가능함
1. Connected Component Labeling
2. Grassfire Labeling
결국 중복된 탐색 없이 배열의 인접한 위치를 묶어주고 묶은 것의 갯수를 파악할 수 있으면
해당 문제를 풀 수 있음

More Related Content

Viewers also liked

오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식Matthew (정재화)
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드Insub Lee
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungMario Müller
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Viewers also liked (10)

Git vs. SVN
Git vs. SVNGit vs. SVN
Git vs. SVN
 
Aprendendo Git
Aprendendo GitAprendendo Git
Aprendendo Git
 
Git Presentation
Git PresentationGit Presentation
Git Presentation
 
오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식오픈소스 공헌을 위한 필수 지식
오픈소스 공헌을 위한 필수 지식
 
svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드svn 능력자를 위한 git 개념 가이드
svn 능력자를 위한 git 개념 가이드
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

Algostudy_lake문제풀이_oh4851

  • 2. 문제 호수의 개수를 구하는 문제 (상,하,좌,우,대각선으로 연결된 곳 W(물)는 같은 호수로 본다) W 물 . 땅 W . . . W . . W W . W W . . W . W W . . . . W . . W . . W W W W . . . W . W . W . W . W W . . W 입력 행 N , 열 M 이 입력으로 주어진다. (1 <= N <= 100; 1 <= M <= 100) 입출력예 입력: 8 6 출력: 3
  • 3. 문제풀이 영상처리의 라벨링과 동일한 작업 과정을 거침 1. 최초로 W가 발견되는 위치까지 탐색 2. W가 발견 될 경우 이를 n번째 호수로 표시하고 배열의 인접한 점을 탐색 3. 만약 인접한 곳에 W가 없다면 1.의 위치에서 다 시 W가 발견되는 지점을 찾고 2., 3.의 과정 반복 W . . . W . . W W . W W . . W . W W . . . . W . . W . . W W W W . . . W . W . W . W . W W . . W
  • 4. 문제풀이 W와 .을 입력 받으면 W -> 255(흰색) . -> 0(검은색) 으로 매핑함
  • 5. 문제풀이 왼쪽에서 오른쪽, 위에서 아래의 순서로 W(255)를 발견할때까지 배열을 탐색 좌측 그림의 예에서는 (0, 0)에서 255인 점을 발견 스택에 (0, 0)을 PUSH (0, 0) STACK
  • 6. 문제풀이 스택이 비어있지 않다면, POP을 수행하고 해당 위치 를 COUNT값으로 표시함 그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배 열의 유효범위를 벗어나지 않고 255인 위치이면 해 당 점을 PUSH하고 -1로 표시(재접근 방지) 1 (1, 1) (0, 0) STACK
  • 7. 문제풀이 마찬가지로 스택이 비어있지 않다면, POP을 수행하 고 해당 위치를 COUNT값으로 표시함 그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배 열의 유효범위를 벗어나지 않고 255인 위치이면 해 당 점을 PUSH하고 -1로 표시(재접근 방지) 1 1 (2, 2) (1, 2) (1, 1) STACK
  • 8. 문제풀이 마찬가지로 스택이 비어있지 않다면, POP을 수행하 고 해당 위치를 COUNT값으로 표시함 그 후 인접한 점(상, 하, 좌, 우, 대각)을 탐색하여 배 열의 유효범위를 벗어나지 않고 255인 위치이면 해 당 점을 PUSH하고 -1로 표시(재접근 방지) 1 1 1 (2, 2) (1, 2) STACK
  • 9. 문제풀이 (1, 2)인 점을 POP해서 COUNT(1)로 표시하고 나면 스택이 비게 되므로 첫번째 호수를 찾는 작업을 마침 그 후 (0, 0)에서부터 다시 W(255)를 탐색해 나감 1 1 1 1 (1, 2) STACK
  • 10. 문제풀이 (0, 4)에서 다음 W(255)를 발견하고 앞선 과정과 마 찬가지로 반복함 1 1 1 1 (0, 4) STACK
  • 11. 문제풀이 위의 과정을 반복하면 좌측과 같은 결과가 완성됨 호수의 갯수는 COUNT값을 출력하면 됨 1 2 1 1 2 2 1 2 2 2 3 2 2 3 3 2 3 3 2 3 3 2 STACK
  • 12. 소스코드 입력: N, M을 입력받고 W(물)입력 시 255로 매핑 탐색: 배열을 탐색하며 W(255)인 위치를 찾고 PUSH 라벨링: 스택에서 POP한 점을 COUNT값으로 표 시하고 인접 배열 탐색 - PUSH, POP은 자유롭게 구현 가능 출력: 라벨링을 마친 후 COUNT값 출력
  • 13. 추가정보 해당 문제는 위와 같은 알고리즘 외에 아래의 알고리즘으로도 해결 가능함 1. Connected Component Labeling 2. Grassfire Labeling 결국 중복된 탐색 없이 배열의 인접한 위치를 묶어주고 묶은 것의 갯수를 파악할 수 있으면 해당 문제를 풀 수 있음