베스트 1053 카카오 프렌즈 컬러링 북 새로운 업데이트 4 일 전

주제에 대한 기사를 찾고 있습니까 “카카오 프렌즈 컬러링 북“? 웹사이트에서 이 주제에 대한 전체 정보를 제공합니다 c2.chewathai27.com/ 탐색에서: 새로운 상위 410 가지 팁 업데이트. 바로 아래에서 이 주제에 대한 자세한 답변을 찾을 수 있습니다. 찾고 있는 주제를 더 잘 이해하려면 끝까지 읽으십시오. 더 많은 관련 검색어: 카카오 프렌즈 컬러링 북 온라인 코딩 테스트, 카카오 거리두기, 프로그래머 스 레벨 1, 코테, 프로그래머 스 코딩테스트, 코테 문제, 코딩 문제 사이트, 알고리즘 연습

카카오프렌즈 컬러링북 – 코딩테스트 연습 – 프로그래머스 스쿨

  • Source: school.programmers.co.kr
  • Views: 59849
  • Publish date: 18 hours ago
  • Downloads: 81056
  • Likes: 5343
  • Dislikes: 6
  • Title Website: 카카오프렌즈 컬러링북 – 코딩테스트 연습 – 프로그래머스 스쿨
  • Description Website:

세부 정보를 보려면 여기를 클릭하십시오.

  • Source: Youtube
  • Views: 70559
  • Date: 12 hours ago
  • Download: 13286
  • Likes: 7244
  • Dislikes: 10

[프로그래머스,Level 2] 카카오프렌즈 컬러링북(JAVA 구현)

또한 필자는 문제를 이해하는 데 시간이 좀 걸렸는데, 자세히 설명이 안 나와 있어 그런지 아니면 본인이 이해력이 부족한 건지는 모르겠지만 정리해보면 이 문제에서 말하는 ‘영역’은 같은 색깔로(여기선 정수로 표현하므로 같은 정수) 상, 하, 좌, 우 연결되어 있다면 하나의 영역으로 간주한다는 것이다. 그렇기 때문에 어피치 그림의 영역의 수는 12개가 된다 .(처음에는 이해할 수 없었다. 왜 12개지?) => 핑크 얼굴색 1개 + 각 눈 3개씩 6개 + 볼터치 2개 + 입꼬리 2개 + 입술1개

마지막으로 주의해야 할 점! 본인과 같이 테스트 케이스는 통과가 되었지만 제출 시 탈락이 나오는 분들은 아마 문제에서 주어지는 변수인 numberOfArea, maxSizeOfOneArea를 전역으로 선언해 사용했을 것이라고 생각된다. 왜인지 모르겠지만 이 변수들을 전역으로 선언하였다면, 꼭! solution 메서드 안에서 초기화를 수행해 주어야 통과가 된다.

이런 유형의 문제는 DFS, BFS를 통해 연결되어 있는 노드를 방문하며 로직을 처리하는 방식으로 풀이가 가능하다. 필자의 생각으로는 두 개의 방법 중 무엇을 사용하던 상관은 없다고 생각된다. 실제로 DFS, BFS를 활용한 다양한 풀이가 존재한다. 본인은 DFS를 이용해 풀어 보았다.

  • Source: fbtmdwhd33.tistory.com
  • Views: 107293
  • Publish date: 21 hours ago
  • Downloads: 5605
  • Likes: 9213
  • Dislikes: 6
  • Title Website: [프로그래머스,Level 2] 카카오프렌즈 컬러링북(JAVA 구현)
  • Description Website:

세부 정보를 보려면 여기를 클릭하십시오.

[Coloring Book] Kakaofriends Story Coloring Book completion \u0026 review

  • Source: Youtube
  • Views: 7316
  • Date: 5 hours ago
  • Download: 42786
  • Likes: 6059
  • Dislikes: 8

[프로그래머스,Level 2] 카카오프렌즈 컬러링북(JAVA 구현)

– 첫 풀이 및 정답풀이

우선 주의해야 할 점은 이 문제는 예제 입출력으로 주어진 데이터와 실제 예제 코드를 실행시켰을 때 다른 데이터가 들어온다.

보이는 바와 같이 문제에서 설명하고 있는 예제 입출력과 다른 것을 확인할 수 있다. 그렇기 때문에 코드를 짤 때 이를 참고하고 짜는 것이 좋을 것 같다. 본인은 문제에서 제시하는 예제를 바탕으로 짰는데 다른 결과가 나와 놀랐기는 했지만, 어쨌든 제대로 동작하였다.

또한 필자는 문제를 이해하는 데 시간이 좀 걸렸는데, 자세히 설명이 안 나와 있어 그런지 아니면 본인이 이해력이 부족한 건지는 모르겠지만 정리해보면 이 문제에서 말하는 ‘영역’은 같은 색깔로(여기선 정수로 표현하므로 같은 정수) 상, 하, 좌, 우 연결되어 있다면 하나의 영역으로 간주한다는 것이다. 그렇기 때문에 어피치 그림의 영역의 수는 12개가 된다 .(처음에는 이해할 수 없었다. 왜 12개지?) => 핑크 얼굴색 1개 + 각 눈 3개씩 6개 + 볼터치 2개 + 입꼬리 2개 + 입술1개

여기까지 이해하고 나서 이전에 백준 온라인 저지에서 풀어보았던 ‘단지 번호 붙이기’ 문제와 유사하다는 것을 알 수 있었다. 아래는 이전에 게시한 블로그의 풀이 글.

이런 유형의 문제는 DFS, BFS를 통해 연결되어 있는 노드를 방문하며 로직을 처리하는 방식으로 풀이가 가능하다. 필자의 생각으로는 두 개의 방법 중 무엇을 사용하던 상관은 없다고 생각된다. 실제로 DFS, BFS를 활용한 다양한 풀이가 존재한다. 본인은 DFS를 이용해 풀어 보았다.

마지막으로 주의해야 할 점! 본인과 같이 테스트 케이스는 통과가 되었지만 제출 시 탈락이 나오는 분들은 아마 문제에서 주어지는 변수인 numberOfArea, maxSizeOfOneArea를 전역으로 선언해 사용했을 것이라고 생각된다. 왜인지 모르겠지만 이 변수들을 전역으로 선언하였다면, 꼭! solution 메서드 안에서 초기화를 수행해 주어야 통과가 된다.

카카오프렌즈 컬러링북 – 검색결과 – 쇼핑하우

[해외] 표시가 있는 상품은 해외직구 또는 구매대행 상품입니다. 상품 정보 및 구매 절차 등 거래에 대한 제반 사항은 반드시 해당 상품 페이지에서 확인하시기 …

  • Source: m.shoppinghow.kakao.com
  • Views: 35270
  • Publish date: 2 hours ago
  • Downloads: 103404
  • Likes: 4482
  • Dislikes: 10
  • Title Website: 카카오프렌즈 컬러링북 – 검색결과 – 쇼핑하우
  • Description Website: [해외] 표시가 있는 상품은 해외직구 또는 구매대행 상품입니다. 상품 정보 및 구매 절차 등 거래에 대한 제반 사항은 반드시 해당 상품 페이지에서 확인하시기 …
See also  베스트 1789 카트 라이더 코인 업데이트 28 일 전

세부 정보를 보려면 여기를 클릭하십시오.

헬로 카카오프렌즈 컬러링북 추천 소개 후기 리뷰(review) 🐢 [Kakao Friends Coloring Book]

  • Source: Youtube
  • Views: 88033
  • Date: 39 minute ago
  • Download: 378
  • Likes: 2511
  • Dislikes: 7

카카오프렌즈 컬러링북 – 쿠팡!

쿠팡은 로켓배송 – 카카오프렌즈 컬러링북에 대한 검색결과입니다. 컬러링북, 카카오프렌즈, 헬로 카카오프렌즈 컬러링북, 컬러링북 색연필, 헬로 리틀프렌즈 컬러링북 …

  • Source: www.coupang.com
  • Views: 10684
  • Publish date: 18 hours ago
  • Downloads: 83024
  • Likes: 7492
  • Dislikes: 5
  • Title Website: 카카오프렌즈 컬러링북 – 쿠팡!
  • Description Website: 쿠팡은 로켓배송 – 카카오프렌즈 컬러링북에 대한 검색결과입니다. 컬러링북, 카카오프렌즈, 헬로 카카오프렌즈 컬러링북, 컬러링북 색연필, 헬로 리틀프렌즈 컬러링북 …

세부 정보를 보려면 여기를 클릭하십시오.

Hello Kakaofriends Coloringbook #1 Apple tree village

  • Source: Youtube
  • Views: 49523
  • Date: 3 hours ago
  • Download: 31271
  • Likes: 3599
  • Dislikes: 8

[프로그래머스] 카카오 프렌즈 컬러링북 (java) – 조앤의 기술블로그

class Solution { static int[] dx = {1, -1, 0, 0}; static int[] dy = {0, 0, 1, -1}; public int[] solution(int m, int n, int[][] picture) { int numberOfArea = 0; int maxSizeOfOneArea = 0; int count = 0; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(picture[i][j] > 0){ count = 0; numberOfArea++; count = dfs(picture, i, j, count, m, n); if(maxSizeOfOneArea < count) maxSizeOfOneArea = count; } } } int[] answer = new int[2]; answer[0] = numberOfArea; answer[1] = maxSizeOfOneArea; return answer; } static int dfs(int[][] arr, int x, int y, int index, int m, int n){ arr[x][y] = 0; //visited 대신 0으로 바꿔가면서 체크. visited index++; for(int i = 0; i < 4; i++){ int nx = x + dx[i]; int ny = y + dy[i]; if(0 <= nx && nx < m && 0 <= ny && ny < n){ if(arr[nx][ny] == arr[x][y]) dfs(arr, nx, ny, index, m, n); } } return index; } }

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

23 thg 3, 2020 — [문제]. 문제 설명. 카카오 프렌즈 컬러링북. 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 …

  • Source: swycha.tistory.com
  • Views: 91844
  • Publish date: 11 hours ago
  • Downloads: 41820
  • Likes: 2127
  • Dislikes: 5
  • Title Website: [프로그래머스] 카카오 프렌즈 컬러링북 (java) – 조앤의 기술블로그
  • Description Website: 23 thg 3, 2020 — [문제]. 문제 설명. 카카오 프렌즈 컬러링북. 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 …

세부 정보를 보려면 여기를 클릭하십시오.

Adorable Kakaofriends👶💕 Hello Little Friends Coloring Book Flip Through \u0026 Coloring

  • Source: Youtube
  • Views: 74818
  • Date: 12 hours ago
  • Download: 54212
  • Likes: 1916
  • Dislikes: 6

[프로그래머스] 카카오 프렌즈 컬러링북 (java)

[문제]

문제 설명

카카오 프렌즈 컬러링북

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자.

위의 그림은 총 12개 영역으로 이루어져 있으며, 가장 넓은 영역은 어피치의 얼굴면으로 넓이는 120이다.

입력 형식

입력은 그림의 크기를 나타내는 m과 n, 그리고 그림을 나타내는 m × n 크기의 2차원 배열 picture로 주어진다. 제한조건은 아래와 같다.

1 <= m, n <= 100 picture의 원소는 0 이상 2^31 - 1 이하의 임의의 값이다. 0 이상 2^31 - 1 이하의 임의의 값이다. picture의 원소 중 값이 0인 경우는 색칠하지 않는 영역을 뜻한다. 출력 형식 리턴 타입은 원소가 두 개인 정수 배열이다. 그림에 몇 개의 영역이 있는지와 가장 큰 영역은 몇 칸으로 이루어져 있는지를 리턴한다. 예제 입출력 mnpictureanswer 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] 예제에 대한 설명 예제로 주어진 그림은 총 4개의 영역으로 구성되어 있으며, 왼쪽 위의 영역과 오른쪽의 영역은 모두 1로 구성되어 있지만 상하좌우로 이어져있지 않으므로 다른 영역이다. 가장 넓은 영역은 왼쪽 위 1이 차지하는 영역으로 총 5칸이다. [문제접근] 간단하게 말해서. 같은 숫자가 적힌 칸들이 상하좌우 영역에 얼마나 연결되어 있는지 찾는 문제. 백준 - 단지번호 붙이기 문제가 생각났다. 그 문제에서 이제 index의 번호를 비교하는 코드를 추가하면 될 것 같았다. (.....가 아니었습니다..) [1차 시도 - 실패] Stack Overflow Error class Solution { static int[] dx = {1, -1, 0, 0}; static int[] dy = {0, 0, 1, -1}; public int[] solution(int m, int n, int[][] picture) { int numberOfArea = 0; int maxSizeOfOneArea = 0; int count = 0; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(picture[i][j] > 0){ count = 0; numberOfArea++; count = dfs(picture, i, j, count, m, n); if(maxSizeOfOneArea < count) maxSizeOfOneArea = count; } } } int[] answer = new int[2]; answer[0] = numberOfArea; answer[1] = maxSizeOfOneArea; return answer; } static int dfs(int[][] arr, int x, int y, int index, int m, int n){ arr[x][y] = 0; //visited 대신 0으로 바꿔가면서 체크. visited index++; for(int i = 0; i < 4; i++){ int nx = x + dx[i]; int ny = y + dy[i]; if(0 <= nx && nx < m && 0 <= ny && ny < n){ if(arr[nx][ny] == arr[x][y]) dfs(arr, nx, ny, index, m, n); } } return index; } } 문제점 : 검색해본 결과 DFS로 접근하여 재귀로 문제 푼 사람들 모두 런타임에러, 스택오버플로우 에러를 겪었다. -> BFS로 접근하는게 낫다고 한다.

[2차 시도]

백준 – 미로탐색 풀이를 참고했다.

import java.util.*; class Solution { static int[] dx = {1, -1, 0, 0}; static int[] dy = {0, 0, 1, -1}; static class Node { int x; int y; public Node(int x, int y){ this.x = x; this.y = y; } } static Queue queue = new LinkedList(); static boolean[][] visited; static int size = 0;// 칸의 개수 public int[] solution(int m, int n, int[][] picture) { int numberOfArea = 0; int maxSizeOfOneArea = 0; visited = new boolean[m][n]; for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(picture[i][j] > 0 && visited[i][j] != true){ size = 1; bfs(picture, i, j, m, n); numberOfArea++; if(maxSizeOfOneArea < size) maxSizeOfOneArea = size; } } } int[] answer = new int[2]; answer[0] = numberOfArea; answer[1] = maxSizeOfOneArea; return answer; } static void bfs(int[][] pic, int x, int y, int m, int n){ queue.add(new Node(x, y)); visited[x][y] = true; while(!queue.isEmpty()){ Node now = queue.poll(); for(int i = 0; i < 4; i++){ int nx = now.x + dx[i]; int ny = now.y + dy[i]; if(0 <= nx && nx < m && 0 <= ny && ny < n){ if(pic[nx][ny] == pic[x][y] && visited[nx][ny] != true){ queue.add(new Node(nx, ny)); visited[nx][ny] = true; size++; // 지나온 칸의 개수 } } } } } } bfs 시작하기 전에 size = 1 로 초기화해줘야 함.. [느낀 점] 문제 유형으로 접근하여 틀에 박힌(?) 알고리즘 풀이법을 하지 못하도록 하는 것 같다.. DFS로 접근했지만 결국 BFS가 더 효율적인 풀이였던 '개복치 문제'도 생각이 났다. [참고] https://jayrightthere.tistory.com/entry/DFSJAVA-카카오프렌즈-컬러링북 https://dreamingdreamer.tistory.com/64 [문제링크] https://programmers.co.kr/learn/courses/30/lessons/1829

[프로그래머스 2단계] 카카오 프렌즈 컬러링북[java]

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

– dfs메소드를 끝내고 돌아오면 영역의 너비와 현재 maxSizeOfArea와 비교하여 더 크면 maxSizeOfArea를 바꿔주고 영역의 너비는 0으로 바꾼다.

– 방문하면서 이미 방문했는지를 체크하며 색이 칠해져 있고 방문을 안했다면 dfs메소드를 통해 주의의 영역을 탐색한다. 영역의 개수를 증가한다.

26 thg 6, 2021 — 카카오 프렌즈 컬러링북. 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다.

  • Source: geunzrial.tistory.com
  • Views: 3300
  • Publish date: 1 hours ago
  • Downloads: 6921
  • Likes: 1068
  • Dislikes: 1
  • Title Website: [프로그래머스 2단계] 카카오 프렌즈 컬러링북[java]
  • Description Website: 26 thg 6, 2021 — 카카오 프렌즈 컬러링북. 출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다.

세부 정보를 보려면 여기를 클릭하십시오.

헬로 카카오프렌즈 컬러링북 색칠하기 🐢 #온천욕 [Kakao Friends Coloring Book][색칠공부 색칠놀이 색칠방법 How to coloring]

  • Source: Youtube
  • Views: 27534
  • Date: 5 hours ago
  • Download: 59265
  • Likes: 8977
  • Dislikes: 8

[프로그래머스 2단계] 카카오 프렌즈 컬러링북[java]

문제 설명

카카오 프렌즈 컬러링북

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자.

위의 그림은 총 12개 영역으로 이루어져 있으며, 가장 넓은 영역은 어피치의 얼굴면으로 넓이는 120이다.

얼굴 1

눈썹 3 * 2 = 6

볼 1 * 2 = 2

입술 = 1

입꼬리 1 *2 = 2

따라서 영역의 개수는 12개이고 가장 넓은 얼굴 베이스의 개수는 120개다

문제 풀이

– 이 문제는 DFS나 BFS로 풀 수 있는 문제다. 나는 DFS로 문제를 풀었다.

– 이중 for문을 이용해 picture의 모든 점을 방문한다.

– 방문하면서 이미 방문했는지를 체크하며 색이 칠해져 있고 방문을 안했다면 dfs메소드를 통해 주의의 영역을 탐색한다. 영역의 개수를 증가한다.

– dfs메소드를 끝내고 돌아오면 영역의 너비와 현재 maxSizeOfArea와 비교하여 더 크면 maxSizeOfArea를 바꿔주고 영역의 너비는 0으로 바꾼다.

— dfs 부분—

– 현재 좌표와 picture를 매개변수로 가져온다.

– 방문했음을 표시하고 영역의 너비를 증가시킨다.

– for문을 통해 현재 좌표에 상,하,좌,우를 만들고 그 좌표들의 값이 picture안에 있지 않다면 다시 for문을 돌린다.

– picture안에 있다면 매개변수의 좌표와 색이 같고 방문하지 않았다면 dfs를 통해 새로 만든 좌표로 탐색한다.

코드

프로그래머스(Level2-3)카카오 프렌즈 컬러링북 – velog

queue에 값을 추가 후 방문여부를 체크 후 queue가 empty 가 아닐 때 까지 반복해줍니다. queue를 poll 하고 상하좌우을 비교 해야하기 때문에 for문을 실행하고 구간에 맞는지 확인하고 방문여부 체크하고 색이 같은지 확인한 후 에 같다면 queue에 값넣고 방문여부 체크 후 size++ 해줍니다. 이렇게 계속 반복 후 끝났을 때 구간의 크기가 최대 크기인지 비교 후 구간 을 1추가 해줍니다.

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

5 thg 3, 2022 — 문제요약:출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다.

  • Source: velog.io
  • Views: 81668
  • Publish date: 1 minute ago
  • Downloads: 84115
  • Likes: 7418
  • Dislikes: 3
  • Title Website: 프로그래머스(Level2-3)카카오 프렌즈 컬러링북 – velog
  • Description Website: 5 thg 3, 2022 — 문제요약:출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다.

세부 정보를 보려면 여기를 클릭하십시오.

카카오프렌즈 스토리 컬러링북 색칠하기 🐢 ‘워터파크(Water park)’ [Kakao Friends Story Coloring Book][색칠공부 색칠놀이 색칠방법]

  • Source: Youtube
  • Views: 17092
  • Date: 12 minute ago
  • Download: 28645
  • Likes: 9358
  • Dislikes: 2

프로그래머스(Level2-3)카카오 프렌즈 컬러링북

문제요약:

출판사의 편집자인 어피치는 네오에게 컬러링북에 들어갈 원화를 그려달라고 부탁하여 여러 장의 그림을 받았다. 여러 장의 그림을 난이도 순으로 컬러링북에 넣고 싶었던 어피치는 영역이 많으면 색칠하기가 까다로워 어려워진다는 사실을 발견하고 그림의 난이도를 영역의 수로 정의하였다. (영역이란 상하좌우로 연결된 같은 색상의 공간을 의미한다.)

그림에 몇 개의 영역이 있는지와 가장 큰 영역의 넓이는 얼마인지 계산하는 프로그램을 작성해보자.

위의 그림은 총 12개 영역으로 이루어져 있으며, 가장 넓은 영역은 어피치의 얼굴면으로 넓이는 120이다.

입력 형식

입력은 그림의 크기를 나타내는 m과 n, 그리고 그림을 나타내는 m × n 크기의 2차원 배열 picture로 주어진다. 제한조건은 아래와 같다.

1 <= m, n <= 100 picture의 원소는 0 이상 2^31 - 1 이하의 임의의 값이다. picture의 원소 중 값이 0인 경우는 색칠하지 않는 영역을 뜻한다. 출력 형식 리턴 타입은 원소가 두 개인 정수 배열이다. 그림에 몇 개의 영역이 있는지와 가장 큰 영역은 몇 칸으로 이루어져 있는지를 리턴한다. 예제 입출력 m n picture answer 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]][4, 5] 구현코드: import java . util . * ; class Node { int x , y ; public Node ( int x , int y ) { this . x = x ; this . y = y ; } } class Solution { static int [ ] dx = { 0 , 0 , 1 , - 1 } ; static int [ ] dy = { 1 , - 1 , 0 , 0 } ; static boolean [ ] [ ] visited ; static Queue < Node > queue ; static int size ; public int [ ] solution ( int m , int n , int [ ] [ ] picture ) { int numberOfArea = 0 ; int maxSizeOfOneArea = 0 ; visited = new boolean [ m ] [ n ] ; queue = new LinkedList < Node > ( ) ; for ( int i = 0 ; i < m ; i ++ ) { for ( int j = 0 ; j < n ; j ++ ) { if ( visited [ i ] [ j ] != true && picture [ i ] [ j ] != 0 ) { size = 1 ; bfs ( i , j , m , n , picture ) ; if ( maxSizeOfOneArea < size ) maxSizeOfOneArea = size ; numberOfArea ++ ; } } } int [ ] answer = new int [ 2 ] ; answer [ 0 ] = numberOfArea ; answer [ 1 ] = maxSizeOfOneArea ; return answer ; } public void bfs ( int x , int y , int m , int n , int [ ] [ ] picture ) { queue . add ( new Node ( x , y ) ) ; visited [ x ] [ y ] = true ; while ( ! queue . isEmpty ( ) ) { Node now = queue . poll ( ) ; for ( int i = 0 ; i < 4 ; i ++ ) { int kx = now . x + dx [ i ] ; int ky = now . y + dy [ i ] ; if ( 0 <= kx && kx < m && 0 <= ky && ky < n ) { if ( visited [ kx ] [ ky ] != true && picture [ x ] [ y ] == picture [ kx ] [ ky ] ) { queue . add ( new Node ( kx , ky ) ) ; visited [ kx ] [ ky ] = true ; size ++ ; } } } } } } 코드해석: 이 문제는 그래프를 탐색하는 알고리즘을 활용할 수있는지를 물어보는 문제이다. 그래프를 탐색하는 알고리즘은 대표적으로 BFS(넓이 우선 탐색 알고리즘) DFS(깊이우선 탐색 알고리즘) 두가지가 있습니다. 자세한 내용은 인터넷에 많이 나와있기 대문에 pass 하고 문제 설명으로 들어가겠습니다. 저는 BFS 알고리즘을 사용하 였습니다. 문제를 구현하기전 미리 알아야할 내용: 1. 구역의 수 을 구해야한다.(좌,우,상,하가 같은 색일경우 같은구간) 2. 구역중 가장 큰 구간의 크기를 구해야 한다. 이 두가지를 구해야 하는 문제이다. bfs 는 queue 를 이용하여 그래프를 탐색하는 방법이다. 맨 먼저 bfs 메서드를 구현 후 사용해야하기 때문에 1) 상하좌우 구현한 변수 dx,dy 2) 방문여부를 구하는 visited 3) queue 4) size 총 4개는 bfs 에서도 사용해야하기 때문에 static 으로 선언하였습니다. visited 와 queue는 맨 처음 solution 메서드를 했을 때 생성되도록 합니다. 이중 for 문을 사용하여 방문하지 않았고 0이 아니면 size 를 1로 초기화 후 bfs 메서드를 실행합니다. 맨처음 실행 시 queue안에는 아무것도 없는 상태입니다. queue에 값을 추가 후 방문여부를 체크 후 queue가 empty 가 아닐 때 까지 반복해줍니다. queue를 poll 하고 상하좌우을 비교 해야하기 때문에 for문을 실행하고 구간에 맞는지 확인하고 방문여부 체크하고 색이 같은지 확인한 후 에 같다면 queue에 값넣고 방문여부 체크 후 size++ 해줍니다. 이렇게 계속 반복 후 끝났을 때 구간의 크기가 최대 크기인지 비교 후 구간 을 1추가 해줍니다.

주제에 대한 관련 정보 카카오 프렌즈 컬러링 북

Bing에서 카카오 프렌즈 컬러링 북 주제에 대한 최신 정보를 볼 수 있습니다.


주제에 대한 기사 보기를 마쳤습니다 카카오 프렌즈 컬러링 북. 이 기사가 유용했다면 공유하십시오. 매우 감사합니다. 사람들이 이 주제와 관련하여 자주 검색하는 키워드: 카카오 프렌즈 컬러링 북 온라인 코딩 테스트, 카카오 거리두기, 프로그래머 스 레벨 1, 코테, 프로그래머 스 코딩테스트, 코테 문제, 코딩 문제 사이트, 알고리즘 연습

Leave a Comment