/images/logo.png

[프로그래머스]k번째 수

https://programmers.co.kr 풀이: array 배열의 commands[0]번째부터 commands[1]번째 까지 자른 후 정렬한다. 자른 배열의 commands[2] 번째 숫자를 출력한다. commands 배열의 길이만큼 반복한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <string>#include <vector>#include <algorithm> using namespace std; vector<int> solution(vector<int> array, vector<vector<int>> commands) { vector<int> answer; for(int i=0;i<commands.size();i++){ vector<int> a = array; sort(a.begin()+commands[i][0]-1,a.begin()+commands[i][1]); answer.push_back(a[commands[i][0] + commands[i][2] - 2]); } return answer; }

[프로그래머스]2016년

https://programmers.co.kr 풀이: 매 달 날짜를 계산하여 원하는 날짜의 요일을 구한다, 주의사항: 2016년은 윤년이다. 1월 1일은 금요일이다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <stdio.h>#include <stdbool.h>#include <stdlib.h> char* solution(int a, int b) { // 리턴할 값은 메모리를 동적 할당해주세요. int m[13] = { 0,31,29,31,30,31,30,31,31,30,31,30,31 }; const char *d[8]= { "THU","FRI","SAT","SUN","MON","TUE","WED" }; for(int i = 1;i < a;i++) { b += m[i]; } b %= 7; return d[b]; }

[백준]11399 ATM

https://www.acmicpc.net/problem/11399 풀이: 돈을 인출하는데 필요한 시간을 입력받는다. 입력받은 시간을 정렬한다. 정렬한 값을 n-i를 곱해서 더해준다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 #include <iostream>#include <algorithm>using namespace std; int main() { int n,r=0,a[1001]; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]; sort(&a[0], &a[n]); for (int i = 0; i < n; i++) r += a[i] * (n - i); cout << r << endl; }

[백준]14490 백대열

https://www.acmicpc.net/problem/14490 풀이: 두 수를 입력받는다(:을 사이에 두고 주어지므로 주의) 두 수의 최대공약수를 구한다. 두 수를 최대공약수로 나눠서 출력한다(최대한으로 약분은 최대공약수로 나누어주면 가능하다)(이때 :을 사이에 두고 출력한다.) 코드: 사용언어 : Python 3 1 2 3 4 import math a,b=map(int,input().split(':')) c=math.gcd(a,b) print(a//c,b//c,sep=':')

[백준]1850 최대공약수

https://www.acmicpc.net/problem/1850 풀이: 두 수를 입력받는다 두 수의 최대공약수를 구한다. 최대공약수만큼 1을 반복해서 출력한다. 코드: 사용언어 : Python 3 1 2 3 a,b=map(int,input().split()) while b: a,b=b,a%b print('1'*a)