본문 바로가기

문제6

[C++] [백준 15947] 아기 석환 뚜루루 뚜루 (pps 3-9) 문제 풀기 전 생각 : /* 먼저 기본 가사를 14단어로 쪼개서 입력 받은 숫자를 14로 나눈 값으로 여러가지 케이스를 나눴습니다 그리고 tururu 와 turu 에 해당하는 케이스들은 ru 가 5개보다 적은 케이스들은 직접 조건문으로 출력하고 만약 5개이거나 더 많으면 n/14 + 2 와 n/14 + 1 로 표현했다 */ #include using namespace std; int main() { int n; cin >> n; if( n%14 == 1 || n%14 == 13) cout 2021. 7. 16.
[C++] [LeetCode 860] Lemonade Change (pps 3-7) 문제 풀기 전 생각 : /* 먼저 동전이 입력되었을 때 5코인이 지불되었다면 가능한 경우의 수는 5코인이 하나 증가하는 것 뿐이다. 10 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 증가하고 5코인이 하나 감소하는 것이다. 만약 5코인을 하나 감소시킨 뒤 5코인이 0보다 작으면 false 를 리턴한다. 20 코인이 지불 되었다면 가능한 경우의 수는 10코인이 하나 감소하고 5코인이 하나 감소하거나 5코인이 세개 감소하는 것이다 만약 두가지 경우 모두 5코인과 10코인의 수가 부족하다면 false를 리턴한다. 그리고 만약 모든 작업이 리턴이 되지 않고 정상적으로 끝났다면 true를 리턴한다. */ class Solution { public: bool lemonadeChange(vector& b.. 2021. 7. 16.
[C++] [백준 17211] 좋은 날 싫은 날 (pps 3-5) 문제 풀기 전 생각 : /* 0) (기분 좋은 날) 다음날 기분 좋을 확률 1) (기분 좋은 날) 다음날 기분 안 좋을 확률 2) (기분 안 좋은 날) 다음날 기분 좋을 확률 3) (기분 안 좋은 날) 다음날 기분 안 좋을 확률 N일째에 기분이 좋을 확률은 : N-1 일째가 기분 좋은 날 일수도 있고 안 좋은 날 일수도 있다. 따라서 두 가지 경우의 확률 모두 더해야 N일째 기분이 좋을 확률이다. N일째에 기분이 안 좋을 확률 또한 위와 같다. 두 가지 경우 모두 고려해야 한다. 따라서 tmp1 = h*m[0] + s*m[2]; tmp2 = s*m[3] + h*m[1]; h = tmp1; s = tmp2; 로 반복한다면 기분 좋을 확률과 기분이 안 좋을 확률을 구할 수 있다. */ #include #in.. 2021. 7. 13.
[C++] [백준 17210] 문문문 (pps 3-4) 문제 풀기 전 생각 : 문제를 풀기전에 문제를 정독했다. 조건이 여러개라 복잡해보이지만 자세히 들여다보면 생각보다 쉬운 문제이다 조건문을 여러개 써야 할 것 같지만 2의 배수는 2의 배수끼리 같은 방식으로 열어야 하며 3의 배수 또한 3의 배수끼리 같은 방식으로 열어야 한다 그리고 연속으로 같은 방식으로 열수 없다. 그럼 2번째 문과 3번째 문을 여는 방법은 달라야만 한다. 하지만 2와 3의 배수중 6이 둘 모두에게 속한다. 그러니 문의 갯수가 5개를 넘는다면 love is open door를 출력하면 된다 #include using namespace std; int main() { int num,first; cin >> num; cin >> first; if(num > 5) cout 2021. 7. 13.
2-10. ZigZag Conversion (LeetCode 6) 문제 풀기 전 생각 : 먼저 변수를 생성합니다 int 타입의 index를 선언합니다. char 타입의 이차원배열을 선언합니다. 변수 row 를 만듭니다. row는 0으로 초기화합니다. 마지막 변수로 level을 선언합니다. level은 column의 역할을 합니다. 와일문으로 매 반복마다 index을 1씩 증가시키고 index가 s의 길이보다 길어지거나 같아지면 반복을 멈춘다. 반복마다 row를 증가시키며 만약 row가 numRows-1 과 같아지면 반복마다 감소시킨다. 그리고 감소하다 0에 도달하면 다시 증가하게 한다. 바로 위의 칸이 비어있다면 올라가고 있는 중이니 level을 증가시키고 만약 차있다면 그대로 둔다. 로 하려고 했지만 완성하고 메모리가 생각보다 많이 들어서 생각을 조금 더 해보니 굳이.. 2021. 7. 9.
2-8. IBM 빼기 1 (백준 6321) 문제 풀기 전 생각 : 입력받을 문자열의 수 만큼 반복하며 매 반복마다 입력받은 문자열의 아스키코드를 1씩 증가시키는 방식을 떠올렸습니다. Z가 나온다면 A로 변환하는것을 조건문을 통해 구현하고 출력하도록 했습니다. 어려운 문제는 아닌듯 합니다. #include using namespace std; int main() { int n; string s; cin >> n; for(int i=0 ; i > s; cout 2021. 7. 8.