전체 글 56

[C++] 백준 알고리즘 7569번 (토마토)

문제 이번에 다뤄볼 문제는 7569번 문제 '토마토'입니다. 토마토 문제에서 연습해야하는 key-point는 BFS입니다. BFS는 너비 우선 탐색을 뜻하는데요. 너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법입니다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용합니다. 이 문제는 7576번(토마토) 문제에서 살짝 응용 된 문제입니다. 기존에서는 x,y에 의한 방향 이동만 존재했다면 이 문제에서는 z축 방향의 이동을 생각해 주면 됩니다. 그 외 문제를 푸는 방식은 7576번과 같습니다. 백준 알고리즘 7576번 (토마토) 문제 이번에 다뤄볼 문제는 7576번 문제 '토마토'입니..

algorithm 2021.08.09

[C++] 백준 알고리즘 7576번 (토마토)

문제 이번에 다뤄볼 문제는 7576번 문제 '토마토'입니다. 토마토 문제에서 연습해야하는 key-point는 BFS입니다. BFS는 너비 우선 탐색을 뜻하는데요. 너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법입니다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용합니다. BFS를 활용하여 토마토가 익어나가는것을 탐색 할 수 있으며 탐색되어 익게되는 토마토의 값을 1로 map에서 바꿔줍니다. visited 2차원 배열에 탐색 횟수를 증가시켜가며 저장해 줍니다. 모든 탐색이 끝난 후 map에 아직 익지 않은 토마토(0)가 존재한다면 이는 토마토가 모두 익지 못하는 상황이므로 예외처..

algorithm 2021.08.09

[C++] 백준 알고리즘 1527번 (금민수의 개수)

문제 이번에 다뤄볼 문제는 1527번 문제 '금민수의 개수'입니다. 금민수의 개수 문제에서 연습해야하는 key-point는 큐입니다. 큐(queue)란 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 뜻합니다. A와B사이에 존재하는 모든 금민수의 개수를 구하는 문제 입니다. 해당 문제의 test case 값 범위가 1,000,000,000이기 때문에 변수를 선언알때 long long int 를 활용하였습니다. 큐에 기본 금민수인 4 와 7을 초기값으로 넣어놓고 이들 각각의 자리수를 한 자리씩 올려주며 4,7을 더해줍니다. 그 후 바꾼 수를 큐에 넣습니다. ex) 4,7 -> 44,47,74,77 -> 444,..

algorithm 2021.08.08

[C++] 백준 알고리즘 1526번 (가장 큰 금민수)

문제 이번에 다뤄볼 문제는 1526번 문제 '가장 큰 금민수'입니다. 가장 큰 금민수 문제에서 연습해야하는 key-point는 큐입니다. 큐(queue)란 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 뜻합니다. 금민수는 4와 7로만 이루어진 수를 말합니다. 입력받은 n을 4가 될때까지 1씩 줄여나가며 해당수를 각 자리수 별로 잘라 큐에 집어 넣습니다. 큐를 하나씩 빼며 4혹은 7을 갖는 수 라면 count값을 증가시켜줍니다. 큐에 들어갔던 자리수의 갯수(rear)가 count된 수와 같다면 이는 4와 7로만 이루어진 수 이므로 금민수입니다. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(..

algorithm 2021.08.08

[C++] 백준 알고리즘 7562번 (나이트의 이동)

문제 이번에 다뤄볼 문제는 7562번 문제 '나이트의 이동'입니다. 나이트의 이동 문제에서 연습해야하는 key-point는 BFS와 큐입니다. BFS는 너비 우선 탐색을 뜻하는데요. 너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법입니다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용합니다. 큐(queue)란 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 뜻합니다. 나이트가 이동 할 수 있는 8방향을 dirX,dirY배열에 입력합니다. 그리고 나이트의 다음 탐색 가능 위치를 큐에 넣..

algorithm 2021.08.07

[제품리뷰] 삼성 갤럭시북 프로 미스틱핑크골드

안녕하세요 :) 오늘은 얼마전에 구매한 삼성전자 갤럭시북 프로 미스틱핑크골드에 대해 리뷰하려 합니다. 갤럭시북 프로의 경우 갤럭시북 프로 360과는 다른 제품이기 떄문에 디스플레이(화면)가 뒤로 완전히 넘어가는 제품은 아니며 일반적인 노트북 형태의 제품입니다. 우선 구성품은 아래와 같아요. 노트북 본체 / USB-C타입 충전기 / 블루투스 무선 마우스 / 노트북 파우치 이렇게 박싱되어있는데요. 개인적으로 노트북 파우치가 들어있어서 좋았습니다 :) 마감이 생각보다 괜찮은 파우치더라구요. "미스틱핑크골드"색상이 혹시나 촌스러우면 어떡하지? 하는 우려를 안고 구매했는데요. 생각보다 색이 선명하거나 촌스럽지 않고 은은한 핑크색이 도는 느낌이어서 만족x100 입니다. 13인치여서 화면이 그렇게 크진 않습니다. 대..

Review 2021.08.07

[제품리뷰] 윈도우 10 부팅 USB 만들기

안녕하세요 :) 예전에 비해 윈도우 부팅 USB 만드는 방식이 너무 쉽고 간결해져서 관련 리뷰를 남겨봅니다. 요즘 FreeDOS 노트북을 많이 구매하시는데요. 아래 글만 그대로 따라 하시면 큰 어려움 없이 윈도우10 설치하실 수 있습니다. 단, 8GB 이상의 USB가 필요합니다. 그 이하의 용량일 경우 부팅 USB 생성에 실패 할 수 있으니 주의하시길 바랍니다. 만약 8GB 이상의 USB가 없다면 아래 링크에서 구매하시면 됩니다. 샌디스크 크루저 블레이드 USB 플래시 드라이브 SDCZ50 COUPANG www.coupang.com USB가 준비 되었다면 이제 마이크로 소프트 공홈으로 이동합니다. 그다음 공식적으로 제공하고 있는 디스크 이미지를 다운받아 주시면 됩니다. www.microsoft.com/k..

Review 2021.08.06

[C++] 백준 알고리즘 1697번 (숨바꼭질)

문제 이번에 다뤄볼 문제는 1697번 문제 '숨바꼭질'입니다. 숨바꼭질 문제에서 연습해야하는 key-point는 큐입니다. 큐(queue)란 컴퓨터의 기본적인 자료 구조의 한가지로, 먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식을 뜻합니다. visited라는 배열을 하나 만들어 방문 된 위치는 재탐색을 하지 않도록 하였습니다. 그리고 큐를 활용하여 문제를 해결하였는데요. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(C++) #include using namespace std; int visited[100001]; int q[100001]; int front = 0, rear = 0; int tmp_f = 0, tmp_r = 0; ..

algorithm 2021.08.06

[제품리뷰] 시디즈 T50 AIR

안녕하세요 :) 이번에 리뷰할 제품은 시디즈의 T50 AIR 이라는 상품입니다! 시디즈에서 제일 잘 나가는 상품중 하나가 T50인데요. 일반 T50과 T50 AIR의 차이점은 소재에 있습니다. 나머지 부분은 다 똑같구요, T50 AIR의 경우 등판에 이어 좌판까지 에어스킨 메쉬 소재로 이뤄져 있습니다. 이로 인해 장시간 앉아있어도 통풍이 잘 된다는 장점이 있어요! 또한 별도의 세탁 걱정 또는 좌판의 오염 걱정도 덜 수 있습니다. 이게 이번에 구매한 시디즈 T50 Air 제품이고 색상은 화이트 + 그레이 입니다. 기본적인 의자가 가지고 있는 기능들은 똑같아요 높낮이 조절, 등받이 기울임 각도 조절, 등받이 기울임 강도 조절 등 다만 다른 의자랑 좀 다른점이 있다면 등받이 기울임 각도 조절시 보통 등받이가 ..

Review 2021.08.06

[C++] 백준 알고리즘 2468번 (안전 영역)

문제 이번에 다뤄볼 문제는 2468번 문제 '안전 영역'입니다. 안전 영역 문제에서 연습해야하는key-point는재귀함수입니다. 재귀함수란 어떤 함수에서 자신을 다시 호출하여 작업울 수행하는 방식의 함수를 뜻합니다. real_map과 map 이라는 2차원 배열을 두개 만들어 map의 값은 영역 체크가 끝나게 되면 0으로 바꿔주어 다시 탐색하지 않도록 하기 위함이고 real_map의 경우 처음 들어온 초기값을 유지하고 있는 2차원 배열입니다. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(C++) #include using namespace std; int real_map[101][101]; int map[101][101]; int dirX[4] = { 0, 0, 1, -1 }; int ..

algorithm 2021.08.06

[C++] 백준 알고리즘 1012번 (유기농 배추)

문제 이번에 다뤄볼 문제는 1012번 문제 '유기농 배추'입니다. 유기농 배추 문제에서 연습해야하는 key-point는재귀함수입니다. 재귀함수란 어떤 함수에서 자신을 다시 호출하여 작업울 수행하는 방식의 함수를 뜻합니다. 배추가 최초 확인 되었을 경우 b_count값을 증가시켜준뒤 재귀로 들어가 인접한 배추들을 다시 탐색하지 않도록 2로 값을 바꿔줍니다. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(C++) #include using namespace std; int map[51][51] = {0}; int dirX[4] = {0,0,-1,1}; int dirY[4] = {-1,1,0,0}; int xx = 0, yy = 0; int t, m, n, k; int b_count = 0;..

algorithm 2021.08.05

[C++] 백준 알고리즘 4963번 (섬의 개수)

문제 이번에 다뤄볼 문제는 4963번 문제 '섬의 개수'입니다. 섬의 개수 문제에서 연습해야하는 key-point는 재귀함수입니다. 재귀함수란 어떤 함수에서 자신을 다시 호출하여 작업울 수행하는 방식의 함수를 뜻합니다. 문제를 읽어봤을때 한 정사각형과 가로, 세로 또는 대각선으로 가는 방향 까지도 고려해야 하므로 총 8가지 방향을 탐색하게 합니다. 재귀를 통해 구현 했으며 최초로 발견되는 육지가 발생하면 i_count값을 증가시켜준뒤 재귀로 들어가 이어지는 육지들의 값을 2로 바꿔주어 다음번에 다시 탐색하지 않게 합니다. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(C++) #include using namespace std; int map[52][52]; const int dsize..

algorithm 2021.08.04

[C++] 백준 알고리즘 2178번 (미로 탐색)

문제 이번에 다뤄볼 문제는 2178번 문제 '미로 탐색'입니다. 미로 탐색 문제에서 연습해야하는 key-point는 BFS입니다. BFS는 너비 우선 탐색을 뜻하는데요. 너비 우선 탐색은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법입니다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용합니다. 문제를 살펴보면 N을 소인수분해 했을때 나타날 수 있는 인수중 가장 큰 값은 루트N입니다. 따라서, 2부터 루트N까지 for문을 돌면서 N을 나눌 수 있다면 계속 나눠주면 됩니다. 아래 해답 코드를 보면 더 쉽게 이해할 수 있으실 겁니다. 코드(C++) #include #include #pragma wa..

algorithm 2021.08.03
반응형