본문 바로가기
반응형

IT 이야기/알고리즘22

정수 합 구하기 알고리즘 C++ / Java / 파이썬 백준 15596번 : 정수 N개의 합 문제를 풀면서 정수의 합 구하기 알고리즘을 공부합시다. 정수 N개의 합을 구하는 함수를 구현하는 문제입니다. 입력 출력을 하는 것이 아닌 함수를 만드는 문제로 제출 언어의 제약이 있습니다. https://www.acmicpc.net/problem/15596 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Go, C99 (Clang), C++98 (Clang), C++11 (Clang), C++14 (Clang), C11 (Clang), C++17 (Clang) www.acmicpc.net 문제에 어떻게 함수명과 리턴값을 사용해야 하는지 주어집니다. 그대로 코딩하시면 문제없이.. 2023. 1. 13.
최소, 최대 값 찾는 가장 빠른 알고리즘 C++ / Java / 파이썬 백준 10818번을 풀면서 최소, 최대값 찾는 가장 빠른 알고리즘을 공부해 봅시다. 최소, 최대 값을 찾는 문제입니다. 주어진 숫자들에서 최소, 최대를 찾으려면 결국 모든 숫자를 1번씩은 봐야합니다. O(N) 시간복잡도로 반복문 1회가 필요한 간단한 문제입니다. 이보다 좋은 해결법은 없습니다. https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 정수의 개수 N은 100만개로 1억이 넘어가지 않는 숫자라서 1초 이.. 2023. 1. 13.
숫자 카운팅 알고리즘 C++ / Java / 파이썬 시간복잡도 백준 10807번 : 개수 세기 문제를 풀면서 숫자 카운팅하는 알고리즘에 대해 알아봅시다. 주어진 숫자에서 특정 숫자의 개수를 세는 문제입니다. O(N) 시간복잡도로 for문 한 번이면 풀 수 있는 간단한 문제입니다. https://www.acmicpc.net/problem/10807 10807번: 개수 세기 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거 www.acmicpc.net 정수의 개수 N은 100개, 입력 범위는 -100~100으로 시간초과나 데이터형 선택에도 특별히 고려할 내용은 없네요. 빠르게 풀어봅시다. 1. C++ conut 변수에.. 2023. 1. 13.
C++ / Java / 파이썬 빠른 입출력 알고리즘 대회 백준 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 테스트케이스 T가 최대 100만개 입니다. 그래서 입력 출력 방식을 효율적으로 수행해야 시간초과가 나지 않습니다. 다행히 문제에서 언어에 따른 가이드가 제시됩니다. .. 2023. 1. 11.
C++ / Java / 파이썬 반복문 문법 코딩 방법 백준 25304번 영수증을 풀면서 각 언어별로 반복문 문법 코딩 방법을 알아봅시다. 반복문을 사용하는 문제입니다. https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net 영수증에 적힌 총 금액이 X 입니다. 다음 줄은 물품 개수가 나옵니다. 물품 개수만큼 물건의 가격과 수량이 반복됩니다. 예제를 봅시다. 총 금액과 각 물건 가격 곱하기 수량의 합을 비교하여 같으면 Yes, 다르면 No를 출력하는 문제입니다. 260,000 = 20,000 * 5 + 30,000.. 2023. 1. 11.
C++ / Java / 파이썬 그레고리력 윤년 계산 언어별로 그레고리력 윤년을 어떻게 계산하는지 알아봅시다. 백준 2753 문제가 가장 적절합니다. 연도가 입력으로 주어졌을 때 윤년 여부를 출력하는 문제입니다. https://www.acmicpc.net/problem/2753 2753번: 윤년 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 www.acmicpc.net 조건문에 and, or 연산자를 사용하는 문제입니다. 문제를 읽고 그대로 풀면 됩니다. * 토막 상식 지구가 태양을 한 바퀴 도는데 걸리는 시간은 365.2422일 입니다. 오차를 보정하기 위해 4년에 한 번씩 윤년이 찾아옵니다. .. 2023. 1. 10.
알고리즘 두 수 크기 비교 조건문 C++ / Java / 파이썬 백준 1330번, 두 수 비교하기를 풀어 보면서 숫자 크기 비교 조건문은 언어별로 어떻게 작성하는지 알아봅시다. 두 수를 비교하는 문제입니다. https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 조건문을 사용해야 합니다. 변수명은 문제에 나오는 것처럼 A, B를 그대로 사용했습니다. 문제를 읽고 그대로 풀면 됩니다. 1. C++ 아래 코드에서 중요한 부분이 있습니다. 흔히 대수비교를 위해서 두수의 차를 구해서 0과 비교하는 경우가 있습니다. A > B 양변에 -B를 대입하여 A - B > 0 으로 비교하는 것 입니다. 상황에 따라 적절할 수도 있지만 알고리즘.. 2023. 1. 10.
알고리즘 숫자 계산 수학 문제 C++ / Java / 파이썬 백준 18108번 : 1998년생인 내가 태국에서는 2541년생?! 풀어보면서 불기와 서기 연도 계산을 알아봅시다. 조금 생각을 해야 하는 알고리즘 숫자 계산 수학 문제가 나왔습니다. https://www.acmicpc.net/problem/18108 18108번: 1998년생인 내가 태국에서는 2541년생?! ICPC Bangkok Regional에 참가하기 위해 수완나품 국제공항에 막 도착한 팀 레드시프트 일행은 눈을 믿을 수 없었다. 공항의 대형 스크린에 올해가 2562년이라고 적혀 있던 것이었다. 불교 국가인 태국 www.acmicpc.net 문제 제목과 입출력 예제를 보니 불기 2541년은 서기 1998년이라고 합니다. 암산해보면 불기연도에서 -543을 하면 서기연도가 됩니다. 입력 조건값에 계.. 2023. 1. 9.
알고리즘 C++ / Java / 파이썬 입출력 방법 문자열 연산 백준 10926번 문제를 풀면서 각 언어별 입출력 방법을 알아봅시다. https://www.acmicpc.net/problem/10926 10926번: ??! 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때 www.acmicpc.net 문자열을 입력받고 입력받은 문자열에 ??!를 붙이는 간단한 문제입니다. 문자열은 각 언어별로 어떻게 입력 받는지, 그리고 문자열 연산을 어떻게 하는지 확인하기 좋은 예제입니다. 1. C++ 길이는 50자를 넘지 않는다고 하여 char 배열의 길이를 적절히 선언했습니다. scanf 로 입력 받고 printf 로 출력했습니다. #i.. 2023. 1. 9.
Hello World 문자열 출력 C++ / Java / 파이썬 (숏코딩) Hello World를 찍는 가장 기본적인 문제를 백준에서 풀어봅시다. 문자열을 출력하는 기본 문제 풀이입니다. https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 그냥 풀면 재미가 없기 때문에 숏코딩을 해봤습니다. 숏코딩이란 말그대로 코드를 최대한 줄이는 것입니다. C++ C++ 이지만 코드를 줄이기 위해 C언어 헤더와 출력을 사용했습니다. 호환이 가능합니다. #include int main(){printf("Hello World!");} 댓글로 알려주셨습니다. 더 줄여 보았습니다. #include main(){puts("Hello World!");} include 부분을 더 줄일 수 있네.. 2021. 9. 1.
반응형