Algorithm159 #1789 수들의 합 # 문제 # 입력 및 출력 # 풀이 문제도 매우 간단하다 일단 문제를 보자마자 든 생각이 n이 최대가 되려면 1부터 순차적으로 더해야 한다고 생각했다 그래서 s를 1부터 순차적으로 빼주기로 했다 s의 범위가 int범위라고 생각했는데 unsinged int범위였다ㅋㅋ 그것도 모르고 그냥 풀었다가 자꾸 틀렸다고 해서 또 구글링했다ㅋㅋㅋㅋ 거기서 long long 쓰는 거 보고 알아챘다 처음 코드가 아래와 같음 #include using namespace std; int main() { int s, i = 1; cin >> s; while (s > 0) { s -= i; if (s s; while (1) { num += count; if (num > s) { co.. 2022. 4. 20. #1463 1로 만들기 # 문제 # 입력 및 출력 # 풀이 규칙을 찾아보려고 했는데 도저히 모르겠더라 그래서 하나하나 적어보고 있는데 다이나믹 프로그래밍 문제 풀었던게 생각나면서 해결이 됐다 변수가 많아져서 좀 복잡하게 쓰긴 했는데 이전 인덱스의 값을 가져와서 최솟값을 차례차례 찾는 방법이긴 하다 #include using namespace std; int dp[1000001]; int main() { dp[1] = 1, dp[2] = 1, dp[3] = 1; // 여기서 문제 발생 int n; cin >> n; bool isTwo, isThree; for (int i = 4; i n; for (int i = 2; i 2022. 4. 19. #1152 단어의 개수 # 문제 # 입력 및 출력 # 풀이 입력받아서 공백이 입력될 때마다 count를 ++해주는 방식으로 하려고 했으나 이렇게 하면 문장 앞에 공백이 온다거나 문장 뒤에 공백이 오면 답이 다르게 나왔다 string으로 입력받으면 몇개의 입력을 받는지 모르기 때문에 구현하기가 힘들어서 split을 생각했다 전체 문장을 받아놓고 공백을 기준으로 split해서 단어의 개수를 세는 방식으로 접근했다 아래 블로그 참고 https://codecollector.tistory.com/999 (C++) - Split 함수 사용하기 Python, javascript 등 다양한 언어에서는 split함수를 지원하지만 c++에는 기본으로 split함수가 내장되어 있지 않습니다. 따라서 여기에 문자열 파싱에 있어 자주 사용하는 spl.. 2022. 4. 19. #1157 단어 공부 # 문제 # 입력 및 출력 # 풀이 예전에 자바로 풀었다가 메모리 초과 떠서 해결하지 못한 상태로 넘어간 문제였다 c++로 풀었을 때 한번에 해결하긴 했는데 좀 더 코드를 줄일 수 있을 것 같아서 구글링해봤다 아래가 처음 작성한 코드다 toupper(), tolower() 기억해두기! #include using namespace std; string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int aCount[26]; int main() { string input; cin >> input; for (int i = 0; i < input.size(); i++) { input[i] = toupper(input[i]); for (int j = 0; j < 26; j++) { i.. 2022. 4. 18. #10162 전자레인지 # 문제 # 입력 및 출력 # 풀이 전에 했던 그리디 알고리즘 문제 동전, 거스름돈 유형과 거의 똑같다 다른 점은 버튼마다 각각의 count를 출력해줘야 한다는 점인데 이렇게 출력하기 위해 버튼 count 배열을 따로 선언했다 그 외 특이점은 없다 #include using namespace std; int btn[3] = { 300,60,10 }; int btnCount[3]; int main() { int T, index = 0; cin >> T; while (T > 0) { if (btn[index] 2) { cout 2022. 4. 17. #2217 로프 # 문제 #입력 및 출력 # 풀이 생각해보면 간단한 문제다 일단 모든 로프를 사용할 필요는 없으니까 가장 많은 중량을 들 수 있는 로프부터 체크해보면 된다 따라서 입력받은 로프의 최대 중량을 배열에 넣고 내림차순 정렬했다 그 다음 병렬 연결하면 들 수 있는 중량 최대값을 구해서 둘의 max값을 구함 위의 예제에선 2개의 로프가 주어지는데 하나의 로프만 사용해서는 중량 15를 들 수 있고 두개의 로프를 병렬 연결하면 가장 작은 로프가 10을 들 수 있기 때문에 두 로프는 총 중량 20을 들 수 있다 따라서 병렬 연결 시엔 가장 작은 중량을 들 수 있는 로프를 기준으로 몇 개의 로프를 병렬했는지 확인하면 된다 말이 좀 어려운데 정리하면 max(주어진 로프 중량 중 가장 작은 중량을 가진 로프 * 병렬 연결된.. 2022. 4. 17. 이전 1 ··· 21 22 23 24 25 26 27 다음