BOJ 50

[BOJ] 9506 - 약수들의 합

문제 https://www.acmicpc.net/problem/9506 어떤 숫자 n이 자신을 제외한 약수의 합과 같으면, 그 수를 완전수라고 한다. ex) 6 = 1 + 2 + 3 n이 완전수인지 아닌지 판단하는 프로그램을 작성하라. 각 줄로 숫자 n을 받고, -1을 입력으로 받으면 프로그램을 종료한다. n이 완전수이면 예시와 같은 형태(6 = 1 + 2 + 3)로 출력하고, 완전수가 아니면 "n is NOT perfect."를 출력한다. 풀이 n을 제외한 약수를 배열에 저장한 뒤, 그 합과 n을 비교한다. import sys while True: n = int(sys.stdin.readline()) # 입력 if n == -1: # 프로그램 종료 break # 약수 구하기 f = [] d = 1 wh..

Algorithm/백준 2021.11.11

[BOJ] 2444번 별 찍기 -7

문제 입력받은 숫자만큼 아래와 같은 모양으로 별을 찍는 프로그램을 작성하라. # 입력 5 # 출력 * *** ***** ******* ********* ******* ***** *** * 풀이 내 풀이 n번째 줄을 기준으로 공백의 수는 늘어나고, 별의 수는 줄어든다. 반복문을 두 번 돌리는 방식으로 문제를 해결한다. import sys n = int(sys.stdin.readline()) for i in range(n): print(" " * (n - 1 - i), "*" * (2 * i + 1), sep="") for i in range(n - 2, -1, -1): print(" " * (n - 1 - i), "*" * (2 * i + 1), sep="") print문이 중복이기 때문에, 중복 코드를 ..

Algorithm/백준 2021.11.05

[BOJ] 2921 - 도미노

문제 https://www.acmicpc.net/problem/2921 1. 두 칸으로 이루어진 도미노 조각이 있다. 각 칸에는 점이 찍혀 있을 수도 있고, 찍혀있지 않을 수도 있다. 2. 점의 개수는 세트의 크기에 의해 결정된다. 세트의 크기가 N인 도미노 세트에서 점의 개수는 0보다 크거나 같고, N보다 작거나 같다. (0 ≤ 점의 개수 ≤ N) 3. 두 개의 도미노 각 칸에 찍힌 점의 개수가 같으면, 두 도미노는 동일하다. 즉, 점이 2개, 8개 찍혀있는 도미노와 점이 8개, 2개 찍혀있는 도미노는 서로 같다. 4. 크기가 N인 도미노 세트는 각 칸의 점의 개수가 N보다 작거나 같은 모든 경우를 포함하고 있다. 중복된 도미노는 없다. 도미노 세트의 크기 N을 입력받아, 도미노 세트에 찍혀 있는 점의..

Algorithm/백준 2021.11.04

[BOJ] 10988 - 팰린드롬인지 확인하기

문제 https://www.acmicpc.net/problem/10988 회문(palindrome)은 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 알파벳 소문자로만 이루어진 단어를 입력받은 후, 이 단어가 회문인지 아닌지 확인한다. 풀이 기존 풀이 2021.10.07 - [자료 구조] 회문 찾기 / 큐 & 스택 위 글에서 큐와 스택을 이용해 회문 여부를 확인하는 프로그램을 작성했다. 역순 정렬을 이용한 풀이 파이썬에서 리스트는 list.reverse() 또는 reversed(list)를 이용해 역순으로 정렬할 수 있다. list.reverse() : list 자체를 역순으로 정렬하며, 반환 값이 없다. reversed(list) : 역순으로 정렬한 list를 반환한다. 리스트의 정순과 역순을..

Algorithm/백준 2021.10.29

[BOJ] 10886번 0 = not cute / 1 = cute

문제 https://www.acmicpc.net/problem/10886 첫번째 줄은 준희가 귀여운지 아닌지에 대한 설문조사에 참여한 사람의 수의 입력이다. 설문조사를 한 사람은 항상 홀수다. 다음 줄부터는 설문조사 참여자의 의견의 표시하는 정수값을 입력 받는다. 준희가 귀여우면 1을 나타내고, 준희가 귀엽지 않으면 0을 나타낸다. 준희가 귀엽다는 의견이 많으면 Junhee is cute! 를 출력하고, 준희가 귀엽지 않다는 의견이 많으면 Junhee is not cute! 를 출력한다. 풀이 - 내 풀이 0의 개수와 1의 개수를 센 후, 비교 결과에 따라 출력한다. loop = int(input()) y = n = 0 for i in range(loop): if int(input()): y += 1 e..

Algorithm/백준 2021.10.27

[BOJ] 2884 - 알람 시계

문제 https://www.acmicpc.net/problem/2884 문제가 길지만 요약하면 다음과 같다. 시각을 입력으로 받아, 45분 전의 시각을 출력하라. 24시간 표현을 사용하여 시간은 0부터 23까지, 분은 0부터 59까지를 범위로 가진다. 풀이 내 풀이 1. 입력값으로부터 시간과 분을 각각 저장한다. 2. 분의 값이 45 미만인 경우, 분의 값에 15를 더하고 시간의 값을 1 감소시킨다. 시간의 값이 0인 경우에는 23으로 변경한다. 3. 분의 값이 45 이상인 경우, 분의 값에 45를 뺀다. 코드 h, m = map(int, input().split()) if m < 45: m += 15 h = 23 if h == 0 else h - 1 else: m -= 45 print(h, m)​ 다른..

Algorithm/백준 2021.10.25

[BOJ] 2574 - 학점계산

문제 https://www.acmicpc.net/problem/2754 어떤 사람의 C언어 성적을 입력받아 그 평점을 출력하라. 성적에 대한 평점은 아래와 같다. A+ 4.3 A0 4.0 A- 3.7 B+ 3.3 B0 3.0 B- 2.7 C+ 2.3 C0 2.0 C- 1.7 D+ 1.3 D0 1.0 D- 0.7 F 0.0 풀이 1. 내가 푼 방법 성적과 평점을 살펴보면 아래와 같은 사실을 알 수 있다. 성적의 첫 번째 글자가 기본 점수를 결정한다. 성적에 두 번째 글자에 따라 기본 점수에 0.3점을 가감한다. 이 규칙을 활용하기 위해 성적의 첫 번째 글자를 키로 하고 기본 점수를 값으로 하는 딕셔너리 하나와 성적의 두 번째 글자를 키로 하고 가감 점수를 값으로 하는 딕셔너리 하나를 선언하여 값을 계산해 ..

Algorithm/백준 2021.10.22

[BOJ] 2480 - 주사위 세개

문제 https://www.acmicpc.net/problem/2480 1부터 6까지의 눈을 가진 주사위 세 개를 던져 아래와 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개인 경우 상금은 10,000원 + 같은 눈의 값 * 1,000원 같은 눈이 2개인 경우 상금은 1,000원 + 같은 눈의 값 * 100원 모두 다른 눈이 나온 경우 상금은 가장 큰 눈의 값 * 100원 주사위 3개의 눈의 값이 입력으로 주어질 때, 상금의 값을 출력하라. 풀이 본인이 푼 것 사용한 언어는 파이썬이다. 좀 복잡하게 풀었다. 방법은 아래와 같다. 1. 주사위 눈 값 3개를 리스트에 저장한다. 2. 주사위 눈 값을 키로, 그 개수를 값으로 하는 딕셔너리를 선언 및 초기화한다. 3. 딕셔너리의 길이를 구한다. 4..

Algorithm/백준 2021.10.21

[BOJ] 11653 - 소인수 분해

문제 정수 N이 주어졌을 때 소인수 분해하는 프로그램을 작성한다. https://www.acmicpc.net/problem/11653 소인수분해 prime factorization 소수(prime)란 1과 자기 자신으로만 나누어 떨어지는 정수를 뜻하며, 인수화(factorization)란 어떤 수를 인수로 분해하는 것을 의미한다. 즉, 소인수분해는 어떤 수를 소수인 인수로 분해하는 것이다. 풀이 풀이 1. 2부터 N까지 모든 수에 대하여 나머지가 0인 경우 값을 출력한다. 코드 n = int(input()) divider = 2 while n != 1: if n % divider == 0: print(divider) n //= divider else: divider += 1 이 방법은 불필요한 반복이 많..

Algorithm/백준 2021.10.19

[BOJ] 7287 - 등록

문제 백준 온라인 저지에서 맞은 문제의 수와 이이디를 그대로 출력하는 프로그램 작성 입력은 없으며, 첫 줄에 맞은 문제의 수, 둘째 줄에 아이디를 출력한다. 풀이 백준 사이트로부터 값을 받아서 출력하는 문제가 아니라, 사용자가 직접 자신이 맞은 문제의 수와 아이디를 확인하여 출력하면 된다. 본인의 아이디와 맞은 문제에 대한 정보는 사이트 오른쪽 상단 아이디를 클릭하면 확인할 수 있다. 임의의 숫자나 문자열을 넣으면 틀린 것으로 채점한다니, 채점 시 출력 값과 실제값을 비교하는 모양이다. 풀이 코드 Python3을 사용했다. 직접 문제 수를 세고 싶지 않아 맞은 문제 목록을 복사하여 문자열로 저장한 뒤, 공백을 기준으로 자른 후 반환 배열의 길이를 출력하도록 했다. quest = "1000 1001 100..

Algorithm/백준 2021.10.17
1 2 3 4 5