Computer Basics/Programmers Solutions126 [프로그래머스 lv1] [1차]다트게임 풀이 해설 인덱스를 고려할 필요 없이 문자열의 원소만 판단하여 각 로직을 처리할 수 있다. 원소가 S, D, T가 들어온 경우, 그동안 계산해놓은 점수에 제곱(세제곱)을 하여 배열에 추가한다. 옵셥 *가 들어온 경우, 가장 최근의 두 원소에 2배를, 옵션 #가 들어온 경우 가장 최근의 원소에 -1배를 계산한다. 마지막으로 배열의 모든 원소의 합을 리턴한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = .. 2022. 3. 21. [프로그래머스 lv1] [1차]비밀지도 풀이 해설 벡터의 각 요소들은 한 행에 대한 정보를 포함하고 있으므로, 이를 분해하여 0인지 1인지 파악한다. 두 지도에 있는 요소들의 비트 연산 값을 통해 둘 중 하나라도 1이면 '#'을, 아니면 ' '을 연결한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second vector solution(int n, vector .. 2022. 3. 20. [프로그래머스 lv2] [1차]프렌즈4블록 풀이 해설 보드에서 4개가 모여있는 곳을 찾아 지운 후, 지운 공간을 메우기 위해 밑으로 블럭을 이동한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; int dx[4] = {0, 0, 1, 1}; int dy[4] = {0, 1, 0, 1}; int M, N; char bd[40][40]; bool check(int x, int y) { if (bd[x][y] == ' '.. 2022. 3. 20. [프로그래머스 lv2] 후보키 풀이 해설 가능한 모든 키후보의 조합을 찾아 벡터에 저장한다. 해당 키후보가 최소성과 유일성을 만족시키는지 확인한다. 최소성은 해당 키보다 더 작은 단위의 키들 중 관련있는 키 후보들을 찾고, 해당 키 후보가 이미 선택되었는지 확인하여 판단한다. 유일성은 입력 받은 relation의 튜플들의 순회하여 중복된 요소가 있는지 확인하여 판단한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #d.. 2022. 3. 20. [프로그래머스 lv2] 순위 검색 풀이 해설 info의 string을 분해하여 해당 조건으로 만들 수 있는 모든 조합을 찾아 해당 배열에 score를 추가한다. 쿼리가 들어올 때 해당 조건을 만족하는 점수의 개수를 logN에 구하기 위하여 조건별 점수 목록을 정렬한다. 이후, 쿼리가 들어올 때마다 이분탐색을 통해 조건에 맞는 점수의 개수를 구한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define .. 2022. 3. 19. [프로그래머스 lv2] 튜플 풀이 해설 특정 수가 주어진 문자열에서 더 많이 등장했다는 것은 초기 집합에서의 우선순위가 높다는 것이다. 따라서 문자열에서 숫자들의 등장 횟수를 모두 카운트 한 뒤, 가장 높은 카운트를 가진 수부터 벡터에 추가하면 된다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second int cnt[100005]; void cntNu.. 2022. 3. 18. [프로그래머스 lv2] 수식 최대화 풀이 해설 가장 처음으로 주어진 문자열에서 기호와 숫자를 분리하여 덱에 저장한다. 이후, 3가지 연산자의 6가지 우선순위 조합에 대하여 계산 결과를 구해 최댓값을 업데이트 한다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second vector v = {"+-*", "+*-", "-+*", "-*+", "*-+", "*+-"}; bool i.. 2022. 3. 18. [프로그래머스 lv2] 거리두기 확인하기 풀이 해설 맨하튼 거리가 2 이내인 좌표는 1) 상하좌우의 인접 좌표 2) 상하좌우로 거리가 2인 좌표 2) 대각선 좌표 뿐이다. 맨하튼 거리가 2 이내인 좌표에 다른 사람(P)가 있는지 확인하고, 있다면 중간에 칸막이가 없는지 확인한다. 해설 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second int dx1[4] = {-1, 1, .. 2022. 3. 17. [프로그래머스 lv2] 뉴스 클러스터링 풀이 해설 문자열에서 두 문자씩 끊어 각각의 문자열 집합을 만든다. 이후, 두 집합에 공통으로 들어있는 교집합의 원소 개수를 구해 이를 합집합 원소 개수로 나눈다. 전체 코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using iii = tuple; #define X first #define Y second void upper(string& s) { for (auto& c : s) { if (c >= 'a' && .. 2022. 3. 17. [프로그래머스 lv1] 실패율 풀이 해설 사용자들의 단계(stages)를 정렬하면 이분탐색(upper_bound, lower_bound)를 통해 해당 단계에 진입한 전체 사용자 수와 실패한 사용자 수를 쉽게 구할 수 있다. 단계별 실패율을 구해 배열에 저장하고, 이를 정렬한 뒤 결과를 출력한다. 전체코드 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ii = pair; using di = pair; using iii = tuple; #define X first #def.. 2022. 3. 17. 이전 1 ··· 9 10 11 12 13 다음