[BOJ][Python] 9506 약수들의 합
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/9506 9506번: 약수들의 합 어떤 숫자 n이 자신을 제외한 모든 약수들의 합과 같으면, 그 수를 완전수라고 한다. 예를 들어 6은 6 = 1 + 2 + 3 으로 완전수이다. n이 완전수인지 아닌지 판단해주는 프로그램을 작성하라. www.acmicpc.net [코드] #풀어쓴 코드 while True: n = int(input()) if n == -1: break answer = '' arr = [] for i in range(1,n): if n % i == 0: arr.append(i) if sum(arr) == n: cnt = 0 for i in range(len(arr)): answer += str(arr[i]) if cnt < ..
[BOJ][Python] 11005 진법 변환 2
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net [코드] numList = {10:'A', 11:'B',12:'C',13:'D',14:'E',15:'F', 16:'G',17:'H',18:'I',19:'J',20:'K',21:'L', 22:'M',23:'N',24:'O',25:'P',26:'Q',27:'R', 28:'S',29:'T',30:'U',31:'V',32:'W',33:'X', 34:'Y',35:'Z'} n, x = map(..
[BOJ][Python] 2563 색종이
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net [코드] 처음 아이디어로는 색종이 겹치는 넓이를 구하고, 색종이 총 넓이에서 빼려고 했다. 그러면 색종이의 각 모서리 좌표를 알아야하고 코드가 복잡해지고 계산이 어려워졌다. 도화지가 100 x 100, 색종이가 10 x 10 으로 제한되어 있으므로, 도화지를 0으로 초기화 한 후 색종이가 붙는 부분에만 1로 바꿔준다. n = int(input()) #도화지 0으로 초기화 paper = [[0..
[BOJ][Python] 10798 세로읽기
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net [코드] arr = [] for j in range(5): arr.append(input()) answer = '' for i in range(15): #각 줄의 글자 인덱스 for j in range(5): if i < len(arr[j]): #각 글자 길이보다 작은 경우만(인덱스 에러 방지) answer += arr[j][i] print(answer)
[BOJ][Python] 2566 최댓값
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net [코드] arr = [] maxNum = 0 row,col = 0,0 for i in range(9): arr.append(list(map(int,input().split()))) for j in range(9): if arr[i][j] > maxNum: maxNum = arr[i][j] row,col = i,j print(maxNum) print(row+1,col+1)
[HackerRank][30 Days of Code] Day 4: Class vs. Instance
·
🚩 Coding Test/HackerRank
[Problem] https://www.hackerrank.com/challenges/30-class-vs-instance/problem?isFullScreen=true Day 4: Class vs. Instance | HackerRank Learn the difference between class variables and instance variables. www.hackerrank.com [Code] class Person: def __init__(self,initialAge): # Add some more code to run some checks on initialAge if initialAge < 0: print("Age is not valid, setting age to 0.") self.a..
[BOJ][Python]25206 너의 평점은
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/25206 25206번: 너의 평점은 인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다! 치 www.acmicpc.net [코드] 딕셔너리 사용해서 Key 값으로 점수 불러오기 scoreList = {'A+':'4.5','A0':'4.0','B+':'3.5','B0':'3.0', 'C+':'2.5','C0':'2.0','D+':'1.5','D0':'1.0', 'F':'0.0'} scoreSum = 0 gradeSum = 0 for i in range(20): subject, score, grade = map(st..
[BOJ][Python]10988 팰린드롬인지 확인하기
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net [코드] s = input() print(1 if s == s[::-1] else 0)
[HackerRank][Numpy] Sum and Prod
·
🚩 Coding Test/HackerRank
[Problem] https://www.hackerrank.com/challenges/np-sum-and-prod/problem?isFullScreen=true Sum and Prod | HackerRank Perform the sum and prod functions of NumPy on the given 2-D array. www.hackerrank.com [Learn] Sum import numpy my_array = numpy.array([ [1, 2], [3, 4] ]) print numpy.sum(my_array, axis = 0) #Output : [4 6] print numpy.sum(my_array, axis = 1) #Output : [3 7] print numpy.sum(my_arra..
[BOJ][Python]2292 벌집
·
🚩 Coding Test/Baekjoon
[문제] https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net [풀이] 1 / 2 3 4 5 6 7 / 8 9 10 11 12 13 14 15 16 17 18 19 / . . . 6, 12, 18 ... 씩 6의 배수로 증가함을 알 수 있다. n = int(input()) num = 1 # 1부터 시작 cnt = 1 # 시작 포함 while n>num: num += 6 * cnt cnt += 1 print(cnt)