전체 글 썸네일형 리스트형 15552 빠른 A + B cin.tie(NULL); ios_base::sync_with_stdio(false); 이런 것도 있구나.. 처음 써봄 그냥 문제에서 알려주는게 다라 그대로 썼다. #include using namespace std; int main() { int n, a, b; cin.tie(NULL); ios_base::sync_with_stdio(false); cin >> n; for(int i = 0; i > a >> b; cout 더보기 4673 셀프 넘버 예전에 어려워서 안 풀었는데 다시 마주쳤다.. d(n)에서 n을 찾기는 너무 어려워 보이고 결국 n에서 만들 수 있는 모든 d(n)들을 제거한 다음 남은 수를 출력하기로 했다. 조금 걱정되는 부분은 반복문을 세 번 쓴다는 거였는데 각 자리수의 합 구하는 건 얼마 안 걸려서 없다고 치면 반복문이 두번이다. 그리고 반복문 두 번은 10000까지 1초안에 돌 수 있기 때문에 괜찮을 것 같았다! (게다가 -1이면 넘어가서 만 번 보다는 적을 것이다) #include #include using namespace std; int main() { vector v; for(int i = 0; i 더보기 1110 더하기 사이클 어려운게 없었다. 그냥 문제에서 하라는대로 했다 #include int main() { int n, init, sum, i; scanf("%d", &n); init = n; for(i = 1; ; i++){ sum = n/10 + n%10; n = (n%10)*10 + sum%10; if(n==init) break; } printf("%d", i); } 더보기 2839 설탕 배달 전에 이 문제를 푼 기억이 난다. 백준이란 사이트를 알고 한번 풀어봐야지 했는데, 기초문제에 이 문제가 있어서 놀랬다. 왜냐면 이 날 수업시간에 그리디란 개념을 배웠는데 보자마자 이거 그리디 아녀 싶었음. 그래서 어려운 기초 문제에 대한 배신감과 풀었다는 뿌듯함이 교차했었다. 알고보니 그거 안 써도 됐었다! 연세대 문제랑 양념치킨을 풀고 나니 이것도 그렇게 풀면 되겠다 싶었다. 그래서 일단 k를 고정시켜놓고 거기에 맞춰 l값을 구한 후 합의 최솟값을 구하면 된다! 여기서 i가 k값이다. 로직에 k는 다 i라 생각하면 된다. 또 지금 생각났는데 k보다 l을 기준으로 풀면 반복 횟수를 줄일 수 있을 것 같다. 중간에 한 번 틀렸었는데 MAX값을 작게 잡은게 문제였다. 999를 9999로 올리니 해결됐다. #.. 더보기 5586 JOI와 IOI 비슷한 문제를 전에 푼 적이 있었다! 그래서 편하게 풀었다. 지금 어떤 상태인지를 판단한 다음 다음 단어를 확인하면서 상태를 바꿔나간다. 뭔가 파이썬에는 찾는게 더 편하게 돼있을 것 같은데 나는 씨쁠을 쓰고 씨쁠에는 관련 함수가 있는지 잘 모르겠다. 그래서 그냥 바로 생각나는 방법으로 풀었다. #include using namespace std; int main() { int jstate = 1, istate = 1; int jcount = 0, icount = 0; string str; cin >> str; for(int i = 0; i < str.length(); i++){ //JOI if(str[i] == 'J' && jstate == 1){ jstate = 2; } else if(jstate ==.. 더보기 11718 그대로 출력하기 이거 5달 전에 풀고 틀렸었는데 드디어 다시 맞았다. 처음 풀 때는 feof 처럼 끝에 뭐가 있고 그걸 확인하는 식으로 생각했었다. 이번에는 단어 개수 세는 문제 생각해서 이렇게 풀었다. false 나면 그냥 나오게끔~~ #include using namespace std; int main() { string str; while(getline(cin, str)){ cout 더보기 1373 2진수 8진수 음.. 코드가 더럽다.. 어떻게 할지 몰라서 그냥 사람이 하는 그대로 코딩했다. 8진수로 보통 3자리씩 끊어 읽기 때문에 3의 배수로 길이를 맞춰준다. 다음으로 각 자리수를 계산한다. 마지막으로 계산한 8진수를 문자열에 붙여준다. 끝~! #include using namespace std; int main() { string str; cin >> str; if ((3 - (str.length() % 3)) == 1) str = "0" + str; else if ((3 - (str.length() % 3)) == 2) str = "00" + str; string result = ""; int sum = 0; for(int i = 0; i < str.length(); i++){ if(i%3 == 0) sum.. 더보기 7567 그릇 전에 주석문제를 푼 적이 있었는데 그때는 상태에 따라 계산했었다. 이 문제도 그렇게 풀까 했는데 어짜피 문자열 통으로 받으니깐 바로 앞의 값이랑 비교하기로 했다. 먼저 첫 그릇의 높이는 10으로 두고 다음 접시와 이전 접시와 비교해서 값을 더해나갔다. #include using namespace std; int main() { int hight = 10; string str; cin >> str; for(int i = 1; i < str.length(); i++){ if(str[i-1] == str[i]) hight += 5; else hight += 10; } printf("%d", hight); } 코드도 간단하다. (+) strlen()함수는 문자열 길이를 그때마다 계산하기 때문에 이것보다는 str.. 더보기 이전 1 ··· 69 70 71 72 73 74 75 ··· 79 다음