백준을 회원가입한 후 1000번대부터 문제풀기를 시작했는데,
오늘 백준 사이트를 돌아다니다가 "단계별로 풀어보기" 라는 메뉴가 있길래 들어가봤다.
어쩐지 1000번대의 문제들 난이도 폭이 너무 크게 왔다갔다 하더니만, 역시나 문제를 단계별로 묶어놓아준 메뉴가 있었다.
1단계는 "입출력과 사칙연산" 이였다. 기초 분야를 다루는 정도의 문제들인 것 같다.
이에 해당하는 문제들은 2557번, 10718번, 10171번, 10172번, 1000번, 1001번, 10998번, 1008번, 10869번, 10430번, 2588번으로 총 11문제이다.
문제도 많고, 1단계라 그런지 다루는 내용들도 간단해서 일일히 문제 풀이와 코드를 작성하기보다는, 그래도 중요하게 느꼈던 점이나 앞으로도 꼭 기억해야 할 기초적인 베이스부분들을 메모하듯이 적으려고 한다. (해당 단계에서 사용한 언어는 C, C++, JAVA 세가지로 풀어보았다.
10171번과 10172번은 프로그래밍에 입문하는 사람들이 많이 헷갈려 할 수 있는 문제라고 생각하는데, 바로 특수문자 출력에 관한 문제였다.
큰따옴표, 작은따옴표, 역슬래시 이런 특정 특수문자들은 문자 그대로를 출력하기 위해 약간의 변동이 필요하다. 모든 특수문자가 그래야 하는 건 아니고 특정 문자들이 그렇다. 해당 문제에서 다룬 특수문자 중에 (, ), [ 이런 괄호들이나 | 이런 문자는 그냥 출력시키면 되지만, 큰따옴표나 작은따옴표 그리고 역슬래시는 \", \', \\ 이렇게 앞에 역슬래시를 붙여줘야 한다. 이외에도 변동을 줘야 하는 다른 특수문자들도 존재하지만, 이 세개만 알고 있어도 딱히 어려움이 있을 것 같진 않다.
그리고 1008번 같은 경우에는, 나도 문제를 별 생각 안하다가 몇번 틀려서 다시 생각했었다. 이 문제에서 꼭 알고가야 할 부분은 출력 포맷인데, 평소 코딩하면도 굉장히 많이 쓰인 부분이다. 대표적으로 printf 함수를 사용할 때 소수 몇번째 자리까지 출력한다거나, 숫자를 몇째짜리로 맞춘다거나 등 포맷을 정하는 데에 알고 가야 하는 사항이 있다.
정수를 출력 할 때(%d), 세 자리 숫자 이하의 정수들을 출력할 경우 한자리 정수도 있고 두자리 정수도 있고 세자리 정수도 있어서 포맷이 이쁘지 않게 출력되는 경우가 있다. 이럴때 사용하는게 %3d 이다. 앞에 3을 바꿔주면 뭐 몇자리건 포맷에 맞게 한자리 숫자면 __1, 두자리 숫자면 _21 이렇게 띄어쓰기로 앞자리를 확보해서 이쁘게 출력해준다. 만약 이 부분을 0으로 채우고 싶다면 %03d 이렇게 해주면 001, 021 이렇게 출력이 된다.
그리고 소수를 출력 할 때(%f), 내가 소수 셋째자리까지 출력을 하고 싶을 경우 %.3f 이런식으로 점을 찍고 숫자를 넣어주면 된다. 되게 간단한데 여태 코딩하면서 되게 많이 썼던 경험이 있다. 역시 기초 베이스 문제에서도 놓치지 않고 출제해주었다.
이외 나머지 문제들은 딱히 큰 어려움은 없어보인다. 2588번은 초등부 올림피아드 출제문제인만큼 그나마 생각적 사고를 요하는 문제였는데, 나누기 연산자와 나머지 연산자를 잘 응용하면 쉽게 풀 수 있다.
'[백준]' 카테고리의 다른 글
[BaekJoon/백준] 2단계 "if문" (0) | 2020.08.29 |
---|---|
[BaekJoon/백준] 1004번 (0) | 2020.08.29 |
[BaekJoon/백준] 1003번 | 복습 1회 완료 (0) | 2020.08.27 |
[BaekJoon/백준] 1002번 (0) | 2020.08.25 |
[BaekJoon/백준] 1001번 (0) | 2020.08.25 |