Programming/BOJ
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/b79mO7/btq2eL9ssm5/Xy6pMp5WUXRQLKRkiEnuQ1/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
from datetime import datetime now = datetime.now() print("%s-%s-%s" %(now.year, now.month, now.day)) 처음 작성했던 코드는 위와 같은데, 이렇게 입력하면 아래와 같은 결과가 나온다. 2021-4-9 조건에 맞게 출력한 것 같은데 백준에 제출하니 자꾸 오답이 나왔다. 그래서 왜 틀렸는지 계속 찾아보니 날짜가 출력될 떄 '2021-04-09'와 같이 월, 일이 두 자리로 출력되어야 하는데 내가 출력한 것은 한자리로 출력되었기 때문인 것 같았다. 그래서 아래와 같이 수정했다. import datetime print(str(datetime.datetime.now())[:10]) #str을 통해 datetime을 string으로 출력한..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cVPbfY/btqHb0ep6su/klOYljWUvPaZQq3WsuvoYK/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
학생 다섯명의 점수를 입력받아 그들의 평균을 구하는 프로그램이다. 단, 점수가 40점 미만인 학생들은 보충수업을 듣는다는 전제하에 점수를 40점으로 가정하여 평균을 구해야 한다. (보충수업은 필수) 우선 다섯번의 입력값을 받아야하기 때문에 for문을 이용하여 코드를 작성했다. 이때, 입력값 num이 40 이하일 경우, num을 40으로 지정한다는 코드를 추가했다. 또한 for문의 마지막에서 입력값 num을 sum에 더하는 것으로 코드를 작성했다. #include int main(){ int sum=0; int num, i; for(i=0;i
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/c4JtHn/btqHjrowrsN/oWkj4WaunuwZ6fzA0GzH9K/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
주어진 수의 자릿수를 더해서 나온 수의 일의자리 값을 이용해 주어진 수의 뒤에 붙여 새로운 두자릿수를 만들고, 이 과정을 반복하는 사이클을 실행하는 프로그램을 만들어야 한다. 문제는 아래와 같다. 처음 코드를 구상할 때 변수를 비교적 많이 사용해서 코드를 구상했다. 코드를 작성하다보니 복잡해지고 효율도 생기지 않는 것 같아 변수를 최소한으로 사용하려고 노력했다. 며칠동안 고민해서 코드를 작성하다가 거의 다 완성되었는데 cycle의 값이 출력되지 않는 문제에 직면해 결국 다른 사람들의 블로그를 참고하여 코드를 완성했다. 아래의 블로그를 참고하여 코드를 작성했다. https://blog.naver.com/paula23/221396206823 [C언어]백준 - 1110번 : 더하기 사이클 요즘 매일 백준 문제..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/cnZnCy/btqEGhu3eLL/yyfFuPSJo3nfq2LpIWOjY0/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
두 정수 A와 B를 입력 받은 다음 A+B를 출력하는 프로그램으로, 문제는 아래와 같다. 앞선 A+B의 문제들과는 다르게 이 문제에서는 프로그램 종료에 대해 특별히 명시해 놓은 것이 없다. 처음에는 그저 테스트 케이스를 입력하면 되겠거니 싶었는데 다른 사람들이 블로그에 풀이를 해놓은 것을 몇개 찾아보니 이 문제는 EOF에 대한 개념을 익히기 위한 문제라는 것을 알게 되었다. EOF이란, End Of File을 의미하며 파일의 끝을 알려주는 입력을 말한다. 보통은 파일의 끝에 다다르면 자동적으로 그 입력이 실행되어 종료가 되지만 이 문제의 경우 별도로 그런 파일이 없기 때문에 ctrl+Z 라고 생각하면 된다. 즉, 위의 문제에서는 입력된 테스트 케이스들의 합을 출력하되, 파일의 끝을 알려주는 명령(ctrl..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/c4c1nu/btqEBdTTmcI/0I0kdHECaQNTo7ka7bgp4K/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
입력받은 A와 B 모두 0일 때까지 두 수의 합을 출력하는 프로그램으로 문제는 아래와 같다. while문에 익숙하지 않아서 다른 사람들의 코드들을 몇개 찾아본 후 코드를 작성했다. 결론부터 말하자면 처음 작성했던 코드를 백준에 제출하니 컴파일 에러가 났다. #include int main(){ int A, B; while(true){ scanf("%d %d", &A, &B); if(A+B !=0){ printf("%d\n", A+B); } else{ break; } } } '컴파일 에러' 를 클릭하면 구체적으로 어디에서 에러가 났는지를 확인해볼 수 있는데 확인해보니 true가 선언되지 않은 부분에서 에러가 났다고 했다. 원래 true = 1 이라서 둘 다 써도 상관이 없다고 알고 있고, dev c++에서..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/D5x93/btqEziBeafZ/EnqPAuv2xGz4oiBF3dwPtK/img.png)
![](https://tistory1.daumcdn.net/tistory/3168165/skin/images/no-image.jpg)
숫자 N을 입력하면 규칙에 의해 별을 출력하는 문제로 아래와 같다. 우선 문제를 보자마자 for문을 3개를 작성해야 한다고 생각했다. 1) 1행, 2행, 3행...N행까지를 출력하도록 명령하는 for문 2) 공백을 출력하도록 명령하는 for문 3) 별을 출력하도록 명령하는 for문 그래서 다음과 같이 코드를 작성했다. #include int main(){ int i, j, k; int n; scanf("%d", &n); for(i=1 ; i