[프로그래머스] Lv.0 문자열 계산하기 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/120902 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 프로그래머스 입문 문제를 풀어보다가 이런 형식의 문제는 드물어서 가져왔다."3 + 5" 처럼 공백을 기준으로 나눠진 문자열이 존재한다. 이 문자열을 잘 파싱해서 계산후 답을 구하면 된다. 여기서의 답은 8 이때 제한사항이 존재한다.연산자는 +, -만 존재.문자열의 시작과 끝에는 공백이 없다.0으로 시작하는 숫자는 주어지지 않는다.잘못된 수식은 주어지지 않는다.5 ≤ my_string의 길이 ≤ 100my_string을 계산한 결과값은 1 이상..
[프로그래머스] Lv.1 공원 산책 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 로봇 강아지가 장애물('X')과 길('O')로 이루어진 공원에서 주어진 명령에 따라 이동한다. 이동 조건은 다음과 같다:명령 형식: "방향 거리" (예: "E 5"는 동쪽으로 5칸 이동).이동 조건:공원을 벗어나면 이동하지 않음.이동 경로에 장애물이 있으면 이동하지 않음.로봇 강아지가 모든 명령을 수행한 후의 최종 위치를 [세로 좌표, 가로 좌표]로 반환한다.공원의 좌측 상단 좌표는 (0, 0), 우측 하단 좌표는 (H - 1, W - 1)...
[프로그래머스] 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 탐색 기본 구조:현재 위치에서 상하좌우로 이동하며 연결된 칸을 탐색한다.이미 방문한 칸이..