Algorithm 170

[프로그래머스/C++] 2016년

2016년 1월 1일이 금요일일 때, 2016년 a월 b일이 무슨 요일인지 return 하는 문제 1월 1일이 금요일이니까 1 + (7의 배수)인 1월 8, 15, 22, 29일은 모두 금요일이다 2, 16, 23, 30은 토요일이고 2, 17 어쩌구 저쩌구... 다시 말해 n일 % 7 = 1이면 금요일, n일 % 7 = 2면 토요일, 3이면 일요일 ···· 이다 n일은 1월 1일부터 a월 b일까지 일수를 말하는 건데, 월마다 며칠까지 있는지 다르니 따로 더해줘야 한다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include #include using namespace std; string solution(int a, int b) { string answ..

[백준 알고리즘/C++/그리디] 17609 회문

입력된 문자열이 회문, 유사회문, 둘다X 중 어디에 해당하는지 찾는 문제 문자열의 양 끝에서 부터 비교해오면 되는데 1. 모두 일치할 경우 2. 유사회문이 아닐 경우 3. 유사회문일지도 모르는 경우 → 일치하지 않는 지점부터 양쪽 문자 하나씩 번갈아 빼보며 다시 비교 이 순서로 판별하면 된다 시간제한이 있는 문제이므로 가지치기가 매우 중요하다 2번에서 하나를 뺀 나머지 문자열이 회문인 경우에 유사회문이 된다 회문이 아닐 경우에만 비교하도록 조건을 설정하여 시간을 줄여야하고 (코드 26번째 줄) 여기서 유사회문인지 아닌지가 판별되면 break 해줘서 시간을 줄여야한다 (코드 40번째 줄) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ..

Algorithm/BOJ 2021.02.09

[백준 알고리즘/C++/그리디] 17521 Byte Coin

바이트 코인의 등락과 사용 가능한 현금이 입력됐을 때, 최고 수익을 구하는 문제 주식(비트코인)은 오르기 전에 사고 오르고 나서 팔면 된다^^! 등락이 주어졌으니 그래프가 올라가기 전에 사고, 올라갔을 때 팔면 돈을 많이 벌 수 있다 즉 i번째 날보다 i+1번째 날에 coin price가 더 높으면 가진돈으로 코인을 몽땅 사고 i+1번째 날에 다 팔아버리면 된다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); long long n, w, arr[15]; cin >> n >> w; for..

Algorithm/BOJ 2021.02.09

[백준 알고리즘/C++] 12865 평범한 배낭

무게 W와 가치 V를 가지는 물건 N개가 있다 K만큼의 무게만 들 수 있을 때, 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 구하는 문제 가치 기준으로만 계산하거나 무게 기준으로만 계산하면 오답이 나옴 무게도 누적시키고, 가치도 누적시켜 줘야한다.. dp로 고려해야 하는 게 두 가지 이상이므로 2차원 배열을 써준다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include using namespace std; int n, k; int w[101], v[101]; int dp[101][100001]; int ans = 0; int main(void) { ios_base::sync_w..

Algorithm/BOJ 2021.02.09