[프로그래머스] Lv.1 비밀지도 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2018 KAKAO BLIND RECRUITMENT에 나온 문제이다. 암호화된 두 개의 비밀지도를 조합하여 길을 표시하려고 한다.조건지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 공백(" ") 또는 벽("#") 두 종류로 이루어져 있다.전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 지도 1과 지도 2라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공..
[프로그래머스] Lv.1 카드뭉치 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/159994 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았다.코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고싶다.원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용한다.한 번 사용한 카드는 다시 사용할 수 없다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없다. 풀이 방법두 개의 카드 뭉치가 존재하므로 cards1_position = ..
[백준] 2467번 - 용액 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/2467 문제 설명산성 용액과 알칼리성 용액의 특성값이 정렬된 순서로 주어졌을 때, 이 중 두 개의 서로 다른 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들자. 조건N은 2 이상 100,000 이하의 정수이 수들은 모두 -1,000,000,000 이상 1,000,000,000 이하오름차 순으로 주어짐풀이 방법고민을 많이 했던 문제이다.만약 10만 크기의 배열을 선언 뒤 이중 for문으로 찾게 된다면 O(100000*100000) = O(10000000000)약 100억의 시간복잡도가 걸리기 때문에 매우 비효율적이다. (O(n*2)) 그러므로 투 포인터 방식을 사용하면 된다.liquid[100000]  left = 0right = n-1 로..
[프로그래머스] Lv.1 행렬의 덧셈 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/12950 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 된다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환해라. arr1 = [[1, 2], [3, 4]]  arr2 = [[5, 6], [7, 8]] answer = [[6,8,], [10,12]] 풀이 방법2차원 백터 배열 입력방법만 잘 알고 있으면 된다.임시 배열 row를 할당하여 각 행렬의 원소를 덧셈한걸 넣어준다.그리고 그 r..
[프로그래머스] Lv.1 폰켓몬 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr N마리의 폰켓몬이 주어지며 각 폰켓몬은 고유 번호를 가진다. [1, 3, 4, 1] 의 경우는 아래와 같다. 1: 2마리3: 1마리4: 1마리 나는 N/2마리의 폰켓몬을 데려가길 원하고, 가장 많은 종류의 폰켓몬을 데려가려면 어떻게 해야 할까? 풀이 방법Hashmap을 사용했다.정렬의 필요가 없고 범위가 크다.폰켓몬 종류번호 1 ~ 200,000폰켓몬 수 1 ~ 1000020만 범위의 배열을 사용할 수도 있지만 for문을 돌리는데 시간이 오래 걸..
[백준] 10026번 - 적록색약 c++
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/10026 문제 설명적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다.크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 아래와 같은 경우를 보자.RRRBBGGBBBBBBRRBBRRRRRRRR 적록색약이 아닌 사람이 봤을 때 구역의 수는 총 4  (빨강 2, 파랑 1, 초록 1)적록색약인 사람이 봤을 때 구역의 수는 3 (빨강-초록 2, 파랑 1)  풀이 방법이 문제는 DFS(깊이 우선 탐색)로 해결할 수 있다.  1.  DFS 탐색 기본 구조:현재 위치에서 상하좌우로 이동하며 연결된 칸을 탐색한다.이미 방문한 칸이..
[Udemy] Spring Boot와 Spring Cloud로 마이크로서비스 구현 01
·
Project/Hands-on
이 글은 Udemy 강의 Master Microservices with Spring Boot and Spring Cloud를 보고 학습한 내용을 정리한 글입니다.강의 내용을 기반으로 제가 이해하고 응용한 내용과 학습 과정을 공유합니다.
[프로그래머스] Lv.0 진료순서 정하기 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/120835 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이해가 되지 않아 한참 고민했던 문제다. 응급도를 기준으로 진료 순서를 정한다. 즉, 응급도가 높은 순서로 먼저 치료한다. 하지만 출력은 응급도 순서대로 정렬된 배열이 아니라, emergency 배열의 원래 순서를 기준으로 응급도를 저장해야 한다. 예를 들어, 환자들의 emergency가 [30, 10, 23, 6, 100]일 경우, 응급도가 높은 순서부터 보면 100이 가장 높고 6이 가장 낮다.따라서 결과는 [2, 4, 3, 5, 1]로 ..