분류 전체보기
-
[프로그래머스/Level 2] 멀쩡한 사각형 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 29. 17:01
programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 풀이 가로가 w, 세로가 h인 직사각형을 대각선으로 자를 때 사용할 수 없게 되는 사각형의 개수가 몇개가 나오는지 규칙을 파악 해야한다. 항상 이러한 규칙을 파악할 때는 작은 단위로 분할하는 것이 좋은 것 같다. 또한 각각의 입력값의 크기가 클때, long long으로 변수를 복사하고 하는게 좋은 것 같다. w=1, h=1 : (1+1)-1=1 w=..
-
[프로그래머스/Level 2] 기능개발 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 28. 16:23
programmers.co.kr/learn/courses/30/lessons/42586?language=cpp 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 앞에서 부터 차례대로 작업의 진도를 비교해야하므로, 큐를 이용하는 것이 좋다고 판단하였다. 1. 배포 기간을 계산해 큐에 집어 넣는다. 2. 큐가 전부 pop 될 때까지 현재 큐의 front를 저장한 now와 pop한 후의 front를 비교하여 now가 크거나 같을 때까지 계속 cnt를 증가시킨다. (이때 큐가 현재 비어있지 않은 상태인 것..
-
[프로그래머스/Level 2] 최댓값과 최솟값 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 28. 14:00
programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 풀이 임시 문자열 저장 변수를 선언하여 공백을 기준으로 더해가며 이를 정수형으로 바꾼 후, 벡터에 삽입한다. 그리고 오름차순으로 정렬하면 맨 앞의 원소는 최솟값, 맨 뒤의 원소는 최댓값이 되므로 front()와 back()을 이용하여 쉽게 찾아낼 수 있다. 다른 방법으로는 stringstream을 이용하여 문자열을 split하는 것이다. stringst..
-
[프로그래머스/Level 1] 다트 게임 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 28. 01:30
programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 풀이 1. 이전 점수를 저장할 변수 prev, 현재 점수를 저장할 변수 now 선언 2. now의 값을 prev에 저장하고, 문자열에서 숫자인 부분을 찾아 now에 저장 (이때 숫자가 10인 경우를 따로 예외처리) 3. 문자열에서 S, D, T인 경우에 따라 pow() 함수를 이용해 처리하여 점수를 계산 (S인 경우는 1제곱이므로 생략) 4. 현재 인덱스의 다음 위치에 *이나 #이 있는지 확인하여 조건에 맞게 보너스 점수 처리 (스타상(*)인 경우 이전 점수를 빼주고, 2배를 한 새로운 이전 점수를 갱신해주는게 포인트!) 5. 현재 점수인 now를..
-
[프로그래머스/Level 1] 비밀지도 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 27. 16:11
programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 10진수의 값을 2진수로 자유롭게 변경할 수 있다면 어렵지 않게 풀 수 있는 문제입니다. 알고리즘은 다음과 같습니다. 덱을 선언한 후, 10진수의 값을 2로 계속 나눠가며 그 나머지 값을 push_front()를 이용하여 넣어줬습니다. 그 후, 2진수로 변환된 수의 길이를 맞추기 위해서 n과 일치할 때까지 0을 push_front() 해줬습니다. 예를들어 n=5이..
-
[프로그래머스/Level 1] 행렬의 덧셈 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 27. 14:57
programmers.co.kr/learn/courses/30/lessons/12950 코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 풀이 blockdmask.tistory.com/256 [Level 1] 행렬의 덧셈 안녕하세요 BlockDMask 입니다. 프로그래머스 알고리즘 문제 풀어보겠습니다. 171107 문제 빼먹음 -> 171213 완료 0. 제목 프로그래머스 Level 1 행렬의 덧셈 Programmers Level 1 Sum of matrix C++ vector c..
-
[프로그래머스/Level 1] 최대 공약수와 최소 공배수 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 27. 14:08
programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 풀이 유클리드 알고리즘을 이용하여 두 수의 최대 공약수와 최소 공배수를 구하는 문제이다. 유클리드 알고리즘이란 a=12, b=18이라고 할 때, b를 a로 나눈 나머지가 0이면 a가 최대 공약수가 되고, 만약 0이 아니라면 b의 값을 a로, b%a의 값을 b로 두어 이를 나눈 나머지가 0인지 계속 확인하는 것이다. 이렇게 최대 공약수를 구하고 ..
-
[프로그래머스/Level 1] 키패드 누르기 (C++)알고리즘 문제풀이/프로그래머스 2020. 10. 26. 21:41
programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 풀이 문제 자체는 어렵지 않다고 생각하는데, 좌표를 pair형으로 저장할 생각을 하지 못해서 구현하는 과정에서 복잡해지는 바람에 잦은 실수가 많았다. 결국 구글에서 약간의 힌트를 얻어서 해결했다. 전체 코드 #include #include using namespace..