본문 바로가기

백준 문제풀이

(42)
백준 15552 C / 단계별로 풀어보기 - for 문 4 안녕하세요. 이번에는 4번째인 15552 번, 빠른 A + B 입니다. https://www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net C++, java, python 등으로 푸시는 분들은 문제 내용처럼 코드를 신경 쓰셔야 겠지만, 저는 C 로 풀기 때문에 딱히 신경 안써도 됩니다. 단순하게 짜면 이렇게 되겠네요. #include int main() { int T = 0, A = 0, B = 0; scanf("%d", &T); for (; T > 0; T--) { scanf("..
백준 8393 C / 단계별로 풀어보기 - for 문 3 안녕하세요. 이번에는 세 번째, 8393 번 합 입니다. https://www.acmicpc.net/problem/8393 8393번: 합 문제 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다. 출력 1부터 n까지 합을 출력한다. 예제 입력 1 복사 3 예제 출력 1 복사 6... www.acmicpc.net 1부터 N 까지의 합을 구하는 문제군요. {N * (N-1)} / 2 해도 되지만, 반복문을 써 봅시다. 이런식으로 되겠군요. #include int main() { int n = 0, sum = 0; scanf("%d", &n); for (int i = 0; i
백준 10950 C / 단계별로 풀어보기 - for 문 2 안녕하세요. 이번에는 2번째인 10950 번 A+B - 3 입니다. https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 어렵지 않겠네요. for 문 돌리기 하면서 안에 scanf 랑 printf 한 번씩만 넣어주면 되겠습니다. 코드를 짜면 이렇게 되겠네요. #include int main() { int T = 0, A = 0, B = 0; scanf("%d", &T); for (; T > 0; T--) { scanf("%d %d", &A, &B); printf("%d\n", A + B); } return 0; } for() 안에 쓸 내용이 필요가 없으면 그..
백준 2739 C / 단계별로 풀어보기 - for 문 1 안녕하세요. 이번에는 for문이네요. 별찍기를 엄청 했던 기억이 납니다. 첫 번째 문제인 2739 번 구구단 부터 풀어보겠습니다. https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 반복문은 while, for 등등이 있습니다. (do while...) 전 주로 for 문을 썼었네요. for문은 for(변수; 조건; 실행할 코드) 이렇게 쓰이는데, 예를 들어 for (i = 0; i < 10; i++) 이런식으로 쓰면, i = 0 부터 시작해서 for 문 안에 있는 코드들을 실행하고 i를 1씩 증가시킵니다. 그러다 i 가 10이 되면 더 이상..
백준 10817 C / 단계별로 풀어보기 - if문 5 안녕하세요. if문의 마지막인 10817번 세 수 입니다. https://www.acmicpc.net/problem/10817 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 이번에는 삼항연산자도 한 번 다뤄볼겸 써보도록 하겠습니다. 삼항연산자는 A = 조건식 ? B : C 이런 식으로 쓰는데요, 조건식이 맞으면 A = B 가 되고, 아니면 A = C가 됩니다. A B C 입력을 받아서 두 번째로 큰 수 출력이네요. A B 를 비교해보고, C 랑도 비교해봐야겠군요. 코드를 짜면 이렇게 되겠네요. #include int main() { int A = 0, B = 0, C = 0, second = 0; sc..
백준 2884 C / 단계별로 풀어보기 - if문 4 안녕하세요. 이번에는 2884 번 알람시계 입니다. 링크는 여기입니다. https://www.acmicpc.net/problem/2884 2884번: 알람 시계 문제 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, 조금만 더 자려는 마음은 그 어떤 것도 없앨 수가 없었다. 이런 상근이를 불쌍하게 보던, 창영이는 자신이 사용하는 방법을 추천해 주었다. 바로 "45분 일찍 알람 맞추기"이다. 이 방법은 단순하다. 원래 맞춰져있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 어차피 www.acmicpc.net 문제를 읽어보니 너무나 이해가 되는군요. 알람듣고 바로 일어나야..
백준 2753 C / 단계별로 풀어보기 - if문 3 안녕하세요. 이번에는 세 번째인 2753 번, 윤년 입니다. 링크는 여기입니다. https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때 이다. 예를들어, 2012년은 4의 배수라서 윤년이지만, 1900년은 4의 배수이지만, 100의 배수이기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다. www.acmicpc.net 윤년에 생일이면 4년마다 생일이라 너무 슬프겠네요. 문제를 보면, 4의 배수이지만, 100의 배수는 아니어야 하고, 근데 400의 배수면 윤년이다. 네요. 참 어렵습니다...
백준 9498 C / 단계별로 풀어보기 - if문 2 안녕하세요. 이번에는 2번째인 9498 번입니다. 링크는 여기입니다. https://www.acmicpc.net/status?user_id=ath0117&problem_id=9498&from_mine=1 채점 현황 채점 번호아이디문제 번호결과메모리시간언어코드 길이제출한 시간16356799ath01179498맞았습니다!!11120C++142511분 전 채점 준비 중: 1개, 채점 중: 4개, 채점 서버: 6개, 평균 채점 시간: 9.10초 www.acmicpc.net 절대평가로 학점을 내는 것 같군요. 상당히 무섭습니다. 저번 문제인 1330번을 푸셨다면, 이 문제도 어렵지 않게 푸실겁니다. 2019/12/04 - [백준 문제풀이/if문] - 백준 알고리즘 1330 / 단계별로 풀어보기 - if문 1 코드..
백준 1330 C / 단계별로 풀어보기 - if문 1 안녕하세요. 입출력과 사칙연산이 끝나고 if문으로 왔네요. if 는 만약 이라는 뜻을 가지고 있죠. 프로그래밍에서는 조건문으로 쓰입니다. 만약 ~~ 하다면 ~~ 해라 이런 식으로 쓰이죠. 비밀번호를 쳤을 때 비밀번호가 맞으면 로그인 시키고, 틀리면 틀리다고 알려주는 식으로 쓸 수도 있겠네요. 오늘은 그 if 문의 첫 번째 문제입니다. 링크는 여기입니다. https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net if 문은 () 안에 조건식을 넣어주고, {} 안에 조건이 충족 될 경우 실행할 코드들을 넣어주시면 됩니다. else if와 else가 또 있는데요, els..
백준 알고리즘 2588 / 단계별로 풀어보기 - 입출력과 사칙연산 12 안녕하세요. 이번엔 드디어 입출력과 사칙연산 마지막인 2588번 곱셈입니다. 링크는 이곳입니다. https://www.acmicpc.net/problem/2588 2588번: 곱셈 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다. www.acmicpc.net 초등학교 때가 떠오르게 하는 문제네요. 1,2 번은 입력으로 받으면 되고, 3번은 2번을 10으로 나눈 나머지로 하면 되겠네요. 4번은 2번의 10의 자리수이므로, 100의 나머지의 몫을 구하면 되겠군요. 물론 10으로 나눈 뒤, 10으로 나눈 나머지를 구해도 될 것 같습니다. 5번은 100의 자리니, 100으로 나눈 몫이겠네요. 6번은 곱하면 되겠네요. 코드를 짜면 이렇게 되겠습니다. #include in..