하루에 코딩테스트 3개씩 풀어서 문제와 풀이 또는 오답노트를 작성하고자 합니다.
레벨 0부터 차근차근 다 풀어볼 예정입니다.
첫번째 문제는 단순하게 /n을 사용하여 출력하는 문제였습니다. 아직 초반인만큼 난이도가 높지는 않습니다.
#include <iostream>
using namespace std;
int main(void) {
string message = "Let's go!";
cout << "3\n2\n1" << endl;
cout << message << endl;
return 0;
}
저의 해답입니다.
그외에도 다른 사람풀이를 확인했는데
#include <iostream>
using namespace std;
int main(void) {
string message = "Let's go!";
cout << "3"<< endl << "2"<< endl << "1" << endl;
cout << message << endl;
return 0;
}
이런식으로 endl를 연달아 사용하는 방법도 나쁘진 않아보였습니다.
두번째 문제입니다.
나머지를 어떻게 출력할 것인가? 라는 문제같아서
저의 해답은
#include <iostream>
using namespace std;
int main(void) {
int angle1;
int angle2;
cin >> angle1 >> angle2;
int sum_angle = (angle1 + angle2) % 360;
cout << sum_angle << endl;
return 0;
}
이것이었는데요. 다른 분들 풀이중에서
#include <iostream>
using namespace std;
int main(void) {
int angle1;
int angle2;
cin >> angle1 >> angle2;
int sum_angle = (angle1 + angle2 > 360) ? (angle1 + angle2) % 360 : angle1 + angle2;
cout << sum_angle << endl;
return 0;
}
이런식으로 조건문을 만드신 분도 계셨습니다. 제 생각에는 후자가 더 쓸 일이 많을 것 같습니다.
세번째 문제입니다.
저는 처음엔 break 를 사용해서 for 문을 바꿔야 생각했는데 그러면 2줄이상 고치게 되므로 막혀서 해답을 보게 되었습니다.
가장 위 해답입니다.
#include <iostream>
using namespace std;
int main(void) {
int number;
cin >> number;
int answer = 0;
while(number){
answer += number % 100;
number /= 100;
}
cout << answer << endl;
return 0;
}
while 문을 사용하여 수정하면 한줄로 고칠 수 있었습니다.
이 외에도 좋은 해답이라고 생각되는 것은
#include <iostream>
using namespace std;
int main(void) {
int number;
cin >> number;
int answer = 0;
for(int i=0; number!=0; i++){
answer += number % 100;
number /= 100;
}
cout << answer << endl;
return 0;
}
이런식으로 number!을 사용하여 for문의 조건을 바꾸면 되는 것이었습니다.
쉬운 문제라고는 하지만 다 까먹은 저는 기초부터 다시 해야겠다는 생각이 커지는 풀이였습니다.
'언리얼(Unreal) > 코딩테스트' 카테고리의 다른 글
24.12.19 (0) | 2024.12.19 |
---|