프로그래머스(4)
-
프로그래머스 폰켓몬 c++ unordered_map 해시
간단한 구현 문제이라서 unordered_map을 사용했다. unordered_map은 해시 테이블을 기반으로 키-밸류 쌍을 저장한다. 검색 연산에 뛰어나며 평균적으로 O(1)의 시간 복잡도를 가지는 해시 테이블을 활용해 데이터를 저장한다. set은 중복되지 않는 정렬된 요소를 저장하며 레드 블랙 트리를 기반으로 한다. 중복이 허용되지 않으며 정렬된 상태가 유지된다. unordered_map은 속도가 빠르며 정렬되지 않는다 . #include #include #include #include using namespace std; int solution(vector nums) { int answer = 0; unordered_map m; for (int i = 0;i < nums.size();i++) { m..
2023.10.25 -
프로그래머스 N-Queen dfs backtracking C++
풀이 방법 '하나의 열 or 하나의 행에는 반드시 하나의 퀸만 놓을 수 있다' 라는 점을 통해 풀이하면 된다. int row[12] : 각각의 행에 몇번째 열이 매칭되는지 (퀸이 놓이는지) 를 나타낸다 void dfs(int rowNum){ if (rowNum==N){ Answer++; return; } for (int i=0;i
2023.10.24 -
프로그래머스 미로 탈출 C++
#include #include #include using namespace std; struct Maze { int x; int y; bool lever; }; int visited[101][101]; int dx[4] = { -1, 1, 0, 0 }; int dy[4] = { 0, 0, -1, 1 }; int solution(vector maps) { int answer = 0; int sx, sy; //find starting point int col = maps.size(); int row = maps[0].size(); for (int i = 0; i < col;i++) { for (int j = 0; j < row ;j++) { if (maps[i][j] == 'S') { sx = j, sy ..
2023.10.21 -
프로그래머스 카펫 C++
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 카펫의 가로 길이를 x, 세로 길이를 y라고 하자. x * y = brown + yellow (x-2) * (y-2) = yellow x>=y 문제에서 보면 위의 세 조건을 만족시켜야만한다. 그래서 각각의 조건을 만족시키는 x, y값을 for문을 통해서 x 값을 하나씩 증가시키면서 확인해보면 된다. 정답 코드는 아래와 같다 #include #include using namespace..
2023.10.20