반응형

분류 전체보기 624

백준 11721번 열 개씩 끊어 출력하기 파이썬

리뷰슬라이싱을 이용해 해결하였다. 문제 풀이문자열 s를 받아오고 s의 길이를 초기화 해준다.s길이를 10으로 나눈 몫 + 1만큼 for문을 개행해 준다.s의 10번째 문자열까지 출력해 주고 s에서 해당 문자열을 제거해 준다. 참고 사항s의 길이가 10의 배수일때 마지막 문자열이 공백으로 노출되어도 통과가 된다.  정답 코드def q11721(): # 백준 11721번 열 개씩 끊어 출력하기 파이썬 s = input() length = len(s) for _ in range(length // 10 + 1): print(s[:10]) s = s[10:]q11721()

백준 1924번 2007년 파이썬

리뷰딕셔너리를 통해 문제를 해결하였다. 문제 풀이각 월에 해당하는 일수를 딕셔너리로 초기화 해준다.각 요일에 해당하는 영문을 딕셔너리로 초기화 해준다.x 월에 해당하는 일수를 y에 더해준다.y를 7로 나눈 나머지를 키로 값는 딕셔너리의 값을 출력해 준다. 참고 사항y에 각 월에 해당하는 일수를 더해줄때 for문의 range는 1부터 x까지 범위로 설정해 줘야 한다. 정답 코드def q1924(): # 백준 1924번 2007년 파이썬 months = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31} weeks = {0: 'SUN', 1: 'MON', 2: 'T..

백준 2920번 음계 파이썬

리뷰구현 문제 문제 풀이desc와 asc리스트를 초기화 한다.입력받은 숫자를 리스트로 초기화 한다.입력받은 리스트가 asc와 동일할 경우 ascending 출력, desc와 동일할 경우 descending 출력그 외엔 모두 mixed를 출력해 준다. 참고 사항없음  정답 코드def q2920(): # 백준 2920번 음계 파이썬 lst = list(map(int, input().split())) desc = [8, 7, 6, 5, 4, 3, 2, 1] asc = [1, 2, 3, 4, 5, 6, 7, 8] if lst == asc: print('ascending') elif lst == desc: print('descending') else:..

SWEA 1215번 D3 [S/W 문제해결 기본] 3일차 - 회문1문제 내용

리뷰1열을 순회할때 행을 순회하는 것 보단 신경을 써줘야 하는 것 같다.문제 풀이테스트 케이스를 10개 받아온다.가로방향으로 주어진 문자열의 길이만큼 받아온 뒤 해당 문자열과 뒤집은 문자열이 일치하면 result를 올려준다.세로방향도 가로방향과 마찬가지로 올려준다.테스트 케이스와 결과값을 출력시킨다. 참고 사항가로 문자열을 참조할땐 인덱싱을 통해 문자열을 비교하면 된다.세로 문자열을 참조할땐 for문을 하나 더 개행해 주었다. 정답 코드for i in range(1, 11): l = int(input()) lst = [input() for _ in range(8)] result = 0 for j in range(8): for k in range(8 - (l - 1)): ..

SWEA 1289번 D3 원재의 메모리 복구하기 파이썬

리뷰1출력에서 #을 추가하는걸 자꾸 까먹는다..문제 풀이메모리 정보를 문자열로 받아온다.문자열의 첫번째 글자가 1일 경우 result값을 1 올려준다.1부터 마지막 문자열 인덱스까지 반복문을 통해 이전 인덱스의 문자열과 다르다면 result값을 1 올려준다.테스트케이스 번호와 함께 result를 출력해 준다. 참고 사항SWEA문제를 풀땐 항상 테스트 케이스 번호를 출력해주자.. 번호 앞엔 #도 꼭 붙여주자.. 정답 코드t = int(input())for i in range(1, t + 1): s = input() result = 0 if s[0] == '1': result += 1 for j in range(1, len(s)): if s[j] != s[j -..

백준 4673번 셀프 넘버 파이썬

리뷰입력이 없어 당황했는데 그다지 어렵지 않은 문제였다. 문제 풀이10001개 길이의 배열을 False로 초기화 해준다.for문을 개행해 주고 현재 숫자 + 각 자릿수의 합을 구해준 뒤 배열의 해당 인덱스를 True로 바꿔준다.배열 중 False값을 가진 인덱스를 출력해 준다. 참고 사항배열의 범위를 넘어간 즉, 10000이상의 숫자는 무시한다.  정답 코드def q4673(): # 백준 4673번 셀프 넘버 파이썬 dp = [False] * 10001 for i in range(1, 10001): temp = i while i > 0: temp += i % 10 i //= 10 if temp

백준 2577번 숫자의 개수 파이썬

리뷰eval 함수를 처음 접하게 되었다. 문제 풀이리스트에 세개의 정수 인자를 받아온다.val에 리스트에 존재하는 숫자의 곱을 문자열로 받아온다.0~9의 키값을 갖는 딕셔너리를 초기화 해준다.val값을 돌며 딕셔너리의 키값과 매치되는 숫자의 값을 올려준다.각 딕셔너리의 value값을 출력해 준다. 참고 사항eval함수는 연산이 가능한 문자열로 이루어져 있을 경우 문자열의 연산을 수행한 뒤 값을 출력해 준다.val을 문자열로 변경해 주었을 경우 딕셔너리의 키 값도 문자열이 되어야 한다. 정답 코드def q2577(): # 백준 2577번 숫자의 개수 파이썬 lst = [int(input()) for _ in range(3)] val = str(eval('*'.join(map(str, lst..

백준 1110번 더하기 사이클 파이썬

리뷰문자열로 접근해야 하나 싶었지만 오히려 더 복잡해 질 것 같아서 그냥 지저분하게 구현하게 되었다. 최적화 코드가 있을 것 같긴 하다. 문제 풀이우선 새로운 숫자를 구해준다.수가 10 이상일때 일의 자리 수 * 10 + 각 자릿수를 더한 값의 일의 자리 수수가 10 미만일때 일의 자리 수 * 10 + 일의 자리 수result는 1로 초기화 해준다. (이미 한번 실행 한 상태)while문을 돌며 result를 증가 시키고 작업을 반복해준다.초기 n값과 현재 수가 동일할 경우 break 후 result값 출력 참고 사항없음  정답 코드def q1110(): # 백준 1110번 더하기 사이클 파이썬 n = int(input()) if n // 10: n2 = (n % 10 * 1..

백준 19947번 투자의 귀재 배주형 파이썬

리뷰버림이라는 조건이 까다로운 문제였다. 4달전 dp를 공부하기 전에는 while로 시도했다가 틀렸었다. 문제 풀이y의 범위는 0~10이기에 dp를 11개의 리스트로 생성해 준다.5 이하의 기본 케이스들을 초기화 해준다.y가 0일땐 h값이 그대로 출력된다.y가 1일땐 h * 1.05을 정수형으로 내림y가 2일땐 y가 1일때 값 * 1.05을 정수형으로 내림y가 3일땐 h * 1.20을 정수형으로 내림y가 4일땐 y가 1일때 값 * 1.20을 정수형으로 내림이후의 값은 for문을 통해 반복처리 해주면 된다. 참고 사항y가 4일때의 케이스가 중요하다, y가 3일때의 값 * 1.05보다 y가 1일때의 값 * 1.20이 더 크다 (왜틀린지 몰랐으나 계산기를 돌려보고 깨달았다.) 정답 코드def q19947():..

SWEA 2805번 D3 농작물 수확하기 파이썬

리뷰1n의 범위가 크지 않아 시간 복잡도를 신경쓰지 않고 풀었다. 문제 풀이입력값을 리스트로 받아온 뒤 개행시킨다.개행시킨 리스트를 map을 통해 int로 변형시키고 리스트로 다시 받아온다.n은 홀수 고정이므로 중앙 인덱스를 초기화 해준다.마름모 꼴의 위쪽 부분과 아래쪽부분의 수확량을 각각의 for문을 통해 구해준다.테스트케이스 번호와 총 수확량을 출력한다. 참고 사항위쪽이나 아래쪽의 for문의 range값을 달리 해줘야 한다. 한쪽은 중앙 인덱스 + 1, 한쪽은 중앙 인덱스 정답 코드def q2805(): # SWEA 2805번 D3 농작물 수확하기 파이썬 t = int(input()) for i in range(1, t + 1): n = int(input()) ..

728x90
반응형