파이썬
-
백준 4673번 : 셀프 넘버 (Python,파이썬)카테고리 없음 2018. 12. 24. 21:34
123456789num = set(range(1,10001))generated_num = set()for i in range(1,10001): for j in str(i): i += int(j) generated_num.add(i)self_num = num - generated_numfor k in sorted(self_num): print(k)cs for 문의 in 부분에 문자열 자체를 넣을 수 있다는 사실을 처음 알았다(3줄).리스트에 새로운 요소를 추가하는 함수는 append() 함수이다. 하지만 set()를 이용해 만든 집합에는 add() 함수를 써 새로운 요소를 추가해야 하는 것을 알았다(6줄)이러한 사실들을 잘 활용해보았다. 1부터 10000까지 전부 생성자로서 활용하여 새로운 수를 만든다. ..
-
백준 1157번 : 단어공부 (Python,파이썬)카테고리 없음 2018. 12. 24. 02:44
요렇게 생긴 문제이다.123456789101112word = (' '.join(input().upper()).split(' '))word_two = list(set(word))cnt = []for j in range(len(word_two)): cnt.append(0)for i in word: if i in word_two: cnt[word_two.index(i)] += 1if cnt.count(max(cnt)) == 1: print(word_two[cnt.index(max(cnt))])elif cnt.count(max(cnt)) >= 2: print('?')Colored by Color Scriptercs더 간단하고 쉽게 풀 수 있었는데 너무 어렵게 풀었다. 어렵게 푼 나머지 설명 글도 잘못 적겠다.혹..
-
백준 2675번 : 문자열 반복 (Python,파이썬)카테고리 없음 2018. 12. 24. 01:37
요렇게 생긴 문제이다.123456789T = int(input())for i in range(T): result = [] RS = input().split(' ') R = int(RS[0]) S = ' '.join(RS[1]).split(' ') for j in S: result.append(j*R) print(''.join(result))cs별로 고민한 문제는 아니었다. 문제 지시대로 잘 따라 입력하고 가공하기 쉽게 입력된 자료를 잘 '분해'(split 함수 활용) 해야 한다.분해해서 조건에 맞게 가공한 다음 '합쳐'(join 함수 활용) 출력하면 된다.
-
백준 10809번 : 알파벳 찾기 (Python,파이썬)카테고리 없음 2018. 12. 24. 00:54
1234567891011alpha_bet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']alpha_bet_two = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']word = ' '.join(input()).split()index = 0for i in alpha_bet: if i in word: alpha_bet[alpha_bet.index(i)] = str(word.index(i))for i in alpha_bet: if..
-
백준 2442번 : 별 찍기 - 5 (Python,파이썬)카테고리 없음 2018. 12. 23. 23:14
별 찍기 5번 문제. 가운데를 맞추려고 python의 center() 함수를 활용해보았으나, 되지 않았다. 이유를 살펴보니 center 함수 같은 경우 가운데 정렬을 하면서 별 뒷공간을 비우는 것이 아니라 공백으로 '채우기' 때문에 제출 시 정답 처리되지 않았다. 공백도 엄연한 '문자'라고 한다.그래서 뒤에 공백을 채워 넣지 않기 위해 별 앞부분에만 공백을 채워 넣는 것으로 마무리했다.1234N = int(input())for i in range(1,N+1): b = ' '*(N-i)+'*'*((2*i)-1) print(b)
-
백준 1924번 : 2007년 (Python,파이썬)카테고리 없음 2018. 12. 23. 23:09
2007년 1월 1일 월요일을 기점으로 일주일 마다 월요일이 돌아온다는 것에 착안에서 풀었다.12345678910111213141516171819202122232425262728def calender(d,m): month = [1,2,3,4,5,6,7,8,9,10,11,12] day = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT','SUN'] piv = 0 for i in month: if i == 1 or i == 3 or i == 5 or i== 7 or i == 8 or i == 10 or i == 12: for j in range(1,32): if i == d and j == m: print(day[piv]) else: piv = (piv + 1) % len(day..
-
백준 4344번 : 평균은 넘겠지 (Python,파이썬)카테고리 없음 2018. 12. 12. 01:18
사실 출력이 까다롭진 않았으나 입력이 까다로웠다. 지금까지 푼 문제들은 각 입력이 독립적이었는데 첫째 줄 입력되는 테스트 케이스의 개수 C에 따라 후의 입력 횟수가 달라지기 때문이다. for문을 이용해서 해결할 수 있었다. for문을 개수C만큼 돌려가며 입력을 하면 되는 것이었다. 나머지는 자잘한 디테일을 고려하는 것 외엔 수학적인 계산을 코드로 구현해서 간단히 풀 수 있었다.1 2 3 4 5 6 7 8 9 10 11 12 t_c = int(input()) cases = [] for i in range(t_c): cases.append(list(map(int,input().split()))) for case in cases: cnt = 0 mean = sum(case[1:])/(len(case)-1) f..