코딩테스트 47

[프로그래머스/c++] 폰켓몬

https://programmers.co.kr/learn/courses/30/lessons/1845?language=cpp 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 1) 풀이 폰켓몬 N/2 마리를 최대한 많은 종류로 선택하는 방법은, 주어지는 폰켓몬 배열에서 중복값을 제거하고 고르는 방법이다. 중복값을 제거하는 방법은 unique 함수를 이용하면 된다. 해당 함수로 중복값을 제거하는 방법은 아래 글에 정리해놓았다! 2021.06.16 - [언어/c++] - [c++] vector 중복원소 제거(so..

[프로그래머스/c++] 완주하지 못한 선수

https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 1) 풀이 요즘 프로그래머스를 열심히 푸는 중인데, 이것도 이 형식에 적응하다보니 좀 풀만한 것 같기도 하고... 그치만 백준을 너무 오래도록 풀어서 아직까지 어색한 감은 있다.. 아무튼, 위 문제는 단순히 생각하면 오히려 쉽게 풀리는 문제이다. 처음에는 참여자 배열의 값들을 반복문으로 하나씩 find함수에 넣고, 해당 값이 completio..

[프로그래머스/c++] 게임 맵 최단거리

https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 1) 풀이 요즘 BFS, DFS 문제를 백준에서 집중적으로 다시 풀어보다가, 프로그래머스에서는 한 번도 이 알고리즘문제를 풀어본 적이 없어서 풀어보았다! 사실 기존의 BFS 풀이랑 별반 다를 건 없는데, 백준과 푸는 방식? 제출 방식? 뭐라고 해야 하나. 아무튼.. 그게 달라서 적응이 좀 필요할 것 같다 😂 ..

[백준/c++] 1012 - 유기농 배추

https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 1) 풀이 요거는 이전에 풀었던 '그림'문제와 똑같은 풀이 방식! 풀이 자체는 아래 글을 참고하면 될 것 같다. 2021.05.31 - [알고리즘 | 자료구조/백준] - [백준/c++] 1926 - 그림 [백준/c++] 1926 - 그림 https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓..

[백준/c++] 1697 - 숨바꼭질

https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 1) 풀이 이전에 풀이했던 BFS 문제들과는 다르게, 이번엔 일차원 배열에서 행해지는 bfs 문제이다. 어떻게 보면 이차원 배열보다 비교적 간단하다고 할 수 있다. 수빈이와 동생이 위치하고 있는 지점은 배열의 인덱스로 생각하면 된다. 숨바꼭질하는 판(board)과 수빈이가 동생을 찾는 시간을 저장하는 배열을 따로 둘 필요없이 그냥 수빈이가 이동하는 좌표(인덱스)에 값으로..

[백준/c++] 4179 - 불!

https://www.acmicpc.net/problem/4179 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문 www.acmicpc.net 1) 풀이 분명 예전에 푼 문제인데.. 왜 이렇게 어려운 걸까😂 예전에 한 번 풀고 다시 복습하고 있음에도 어려운 문제들이 너무 많다... 공부엔 끝이 읍다... 후. 아무튼, 이 문제 또한 BFS 문제인데 이건 두개의 BFS 탐색을 돌린다고 생각하면 된다. 하나는 1) 불의 이동, 하나는 2) 지훈이의 이동 이렇게 해서! 그럼 어떤 것을 먼저 탐색하느냐 가 중요한데, 이 문제에서 ..

[프로그래머스/c++] 체육복

https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 이 문제를 풀고 나서 다른 분의 풀이를 보고 나서 아..! 싶었다. 알고리즘을 몇 개 아는 지금 이 시점에서, 알고리즘 연습 문제는 어떻게든 풀 수 있다.. 그리고 내가 알고 있는 방법 내에서 충분히 효율적으로 풀 수 있음에도 지금의 나는 그냥 무작정 어떻게든 풀어내려는 게 습관화 되어있는 것 같다😥 앞으로는 효율을 생각해봐야지... 1) 풀이 별거 아닌 문제인데..

[백준/c++] 7576 - 토마토

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1) 풀이 BFS 문제 푸는 주간... 몽롱한 상태로 풀고 몽롱한 상태로 글을 쓰자니 약간 횡설수설할 수 있음에 주의하자! 이전에도 BFS 문제를 풀었으니 이 알고리즘에 대한 전반적인 풀이방법은 이전 글을 참고하자 2021.05.31 - [알고리즘 | 자료구조/백준] - [백준/c++] 1926 - 그림 이전 글과 다른 점이 있다면, 1) 탐색을 시작하는 지점이 여러 개이며 2) ..

[백준/c++] 1926 - 그림

https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 1) 풀이 BFS (너비우선탐색)을 이용하여 풀면 되는 문제다. BFS에 대한 설명은 아래 3) 참고자료를 참고하길 바란다. BFS 문제 중에서도 딱히 어려운 난이도는 아니라 그것만 안다면 쉽게 풀 수 있다! 여기에서 1로 연결된 것을 그림이라고 하는데, 그 그림의 개수와 그 중 가장 큰 넓이를 출력하면 된다. 1. 제일 먼저 탐색을 시작할 좌표를 찾는다. (값이 1인 좌표를 찾아서 시작해야 한다) 2..

[백준/c++] 2217 - 로프

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 1) 풀이 이 문제가 '그리디 알고리즘'과 관련된 문제라고 하던데.. 사실 난 그런 알고리즘 모른다😂 나중에 시간 날 때 찾아보고 정리해놔야지...(이러고 안 적은게 수십개.. 부지런해지자ㅠ~) 이 문제에서 고민해봐야 할 조건은 두 가지 1) 모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다. 2) k개의 로프를 사용해 중량 w를 들어올리면 각 로프에 ..

728x90