본문 바로가기

개인 공부/알고리즘

(17)
[백준 알고리즘]15596번 정수 N개의 합 오늘은 백준 알고리즘에 있는 15596번을 문제를 해결하고 글을 작성하고자 한다. 본 문제는 Python3을 사용하였다. 문제 정수 n개가 주어졌을 때, n개의 합을 구하는 함수를 작성 하시오. 작성해야 하는 함수는 다음과 같다. Python 2, Python 3, PyPy, PyPy3: def solve(a: list) -> int a: 합을 구해야 하는 정수 n개가 저장되어 있는 리스트 (0 ≤ a[i] ≤ 1,000,000, 1 ≤ n ≤ 3,000,000) 리턴값: a에 포함되어 있는 정수 n개의 합 (정수) 풀이 본 문제는 주어진 조건에 맞게 함수를 작성하여 풀이를 해야한다. 조건을 살펴보면 함수의 이름과 매개 변수, 리턴값이 주어진다. 코드로 나타내면 다음과 같다. def solve(a): a..
[백준 알고리즘] 10951번 Python A+B -4 해당 글은 Python으로 백준 알고리즘 10951번 문제를 풀고 성공한 코드이다. (https://www.acmicpc.net/problem/10951) 이 문제의 경우 다른 반복문 문제들과 다르게 몇번 진행해야하는지 정해져 있지 않다. 따라서 단순 출력만 해주는 코드를 작성할 경우 런타임 에러를 발생한다. 우선 아래와 같이 보이는 코드형태로 제출 할 경우 무한반복으로 진행 되기 때문에 런타임 에러가 발생한다. import sys while True : a,b = map(int, sys.stdin.readline().split()) print(a+b) 따라서 이러한 문제를 해결하기 위하여 예외처리를 사용하여 코드를 작성하였다. # 이 문제는 문제상으로 봤을 경우 무한 반복하는 문제이지만 예외처리를 안해..
[백준 알고리즘] 3052번 Python 나머지 해당 글은 Python으로 백준 알고리즘 3052번 문제를 풀고 성공한 코드이다. 이 문제에서 Python을 이용하여 문제를 풀 경우 set이라는 집합 함수를 사용하여 len으로 list의 길이를 구하여 성공하였다. (https://www.acmicpc.net/problem/3052) remainder = [] # 42로 나눗값을 리스트 형식으로 하여 저장 for i in range(10) : # 10개를 입력 받아 진행함 num = int(input()) remainder.append(num % 42) # 42로 나눗값을 append를 사용하여 리스트에 추가함 remainder = set(remainder) # 교집합으로 같은 것끼리 묶음 print(len(remainder)) # 교집합으로 묶은 것을..
[백준 알고리즘] 1546번 Python 평균 해당 글은 Python을 이용하여 백준 알고리즘 1546번 문제를 풀고 성공한 코드이다. (https://www.acmicpc.net/problem/1546) cnt = int(input()) # 과목수 카운트 sum_score = 0 score = list(map(int, input().split())) #점수를 list형식으로 입력 받음 max_score = max(score) # 최대 점수 for i in range(cnt) : score[i] = score[i]/max_score*100 sum_score += score[i] avg_score = sum_score / cnt print(avg_score)
[백준 알고리즘] 1330번 Python 두 수 비교하기 해당 글은 Python으로 백준 알고리즘 1330번 문제를 풀고 성공한 코드이다. (https://www.acmicpc.net/problem/1330) a,b = map(int, input().split()) if ab: print(">") else: print("==")
[백준 알고리즘] 1110번 Python 더하기 사이클 해당 글은 백준 알고리즘의 1110번문제를 Python으로 풀어본 코드이다. (https://www.acmicpc.net/problem/1110) # 이 문제는 연산의 나머지와 나눗셈을 이용한 문제이다. num = int(input()) chk = num new_sum = 0 sum_num = 0 # 26 일 경우 2+6을 더한 값 cnt = 0 while True: sum_num = num//10 + num%10 # 10의 자리와 1일 자리를 구분하여 덧셈 하는 수식 new_sum = (num%10)*10 + sum_num%10 # sum_num에서 연산해서 나온값의 1의 자리와 덧셈을 하는 수식 cnt += 1 num = new_sum if new_sum == chk: break print(cnt)
[백준 알고리즘] 2557번 C언어 Hello World 해당 글은 C언어로 백준 알고리즘(https://www.acmicpc.net/)의 2557번 문제를 풀어보고 성공한 코드이다. https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 문제 Hello World!를 출력하시오. 입력 없음 출력 Hello World!를 출력하시오. #include int main(){ printf("Hello World!\n"); return 0; }
[백준 알고리즘] 1001번 C언어 A-B 해당 글은 C언어로 백준 알고리즘(https://www.acmicpc.net/)의 1001번 문제를 풀어보고 성공한 코드이다. https://www.acmicpc.net/problem/1001 1001번: A-B 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. #include int main(){ int A; int B; scanf("%d%d",&A,&B); printf("%d",A-B); }