[C++, 프로그래머스 - Lv.0] 안전지대
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 안전지대 사용 언어 : C++ 간단하게 설명하자면, 폭탄 위치와 폭탄이 영향이 닿는 범위를 비안전지대로 전환하고, 주어진 맵의 안전지대가 총 몇 칸인지 반환하는 문제였다. X와 Y값이 주어지면 8방향을 체크하는 aroundCheck 함수를 만들어서 맵에 폭탄이 설치되어 있을 경우(값이 1이라면), 폭탄 가중치(999)를 폭탄 위치에 할당해주고, aroundCheck 함수를 통해서 해당 위치의 8방향에 폭탄 가중치를 할당한다. 이후, 모든 맵에 대해서 똑같이 계산을 진행해주고, 다시 모든 맵을 순회하면서 answer를 도출하면 된다. #include #include using namespace std; void aroun..
[C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 겹치는 선분의 길이 사용 언어 : C++ 라인의 최대 길이는 -100 ~ 100까지다. 큰 수가 아니기 때문에 최소 -100부터 최대 100까지 수를 가지고 있는 변수를 배열로 만들어준다. 만든 배열에 매개로 전달받은 lines들의 수에 맞게끔 더해준다. 음수에서 받을 수 있기 때문에 큰 수와 작은 수를 비교할 수 있어야 한다. 수를 배열에 더해주었을 때, 1보다 수가 크다면 겹쳤다고 판정내린다. 그리고 수가 1이라면, 겹치지 않았다고 판별할 수 있다. #include #include using namespace std; int solution(vector lines) { int answer = 0; int arr[20..
[C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 정수를 나선형으로 배치하기 사용 언어 : C++ 문제 해결을 위해서, 값이 상승하는 방향을 잡아주면 해결되는 문제였다. 오른쪽 -> 아래쪽 -> 왼쪽 -> 위쪽 순서로 반복되기 때문에 방향을 잡아줄 변수를 선언하고 해당 방향에 맞게끔 값을 채워넣어주면 된다. 이때, 현재 위치가 배열의 최소 값과 최대 값보다 작거나 클 경우를 대비하여, 다음 위치를 선행 탐색하는 기능을 추가한다. 작거나 크다면, 맵의 바깥에 있다는 것이므로 다음 방향으로 전환해준다. 또, 다음 위치에 존재하는 값이 특정 값이 아니라면, 이미 지나갔다는 소리이므로, 방향을 변경해주면 쉽게 풀 수 있다. #include #include using names..
[C++, 프로그래머스 - Lv.0] 옹알이 (1)
·
코테/프로그래머스
[C++, 프로그래머스 - Lv.0] 옹알이 (1) 사용 언어 : C++ 해당 문제는 입력받은 데이터 'babling'에서 'aya', 'ye', 'woo', 'ma'에 해당하는 텍스트가 있어야 했다. 예시로 들 수 있는 텍스트가 'ayaye'와 'yemawoo'가 있는데 여기에서 유효한 값을 가진 텍스트는 'ayaye' 하나다. 'yemawoo'는 발음할 수 있는 'ye'가 존재하지만, 'mawoo'는 발음할 수 없으므로 유효하지 않다. 이러한 것들을 기반으로 발음할 수 있는 데이터를 순회하면서 발음이 가능한 것은 특정 문자로 변경하고 이후, 특정 문자를 제외하고도 다른 문자가 남아있다면 넘기고, 특정 문자만 남아있을 때 값을 올려줬다. 이때, 특정 문자가 2개 이상 남아..