분류 전체보기 777

백준 1475번 방 번호 파이썬

리뷰딕셔너리를 활용하여 풀었다. 문제 풀이0 ~ 9를 키를 갖는 딕셔너리를 값을 0으로 초기화 해준다.각 딕셔너리에 입력 숫자의 자릿수를 더해준다.6과 9의 경우 뒤집어 사용할 수 있기 때문에 각 키값은 6과 9의 개수를 더한 값을 2로 나누어 반올림 해준다.딕셔너리의 값중 최고값을 출력해 준다. 참고 사항6과 9의 개수 합이 홀수일 경우 2로 나눈 뒤 올림 처리 해줘야 한다.  정답 코드def q1475(): # 백준 1475번 방 번호 파이썬 n = int(input()) dic = {i: 0 for i in range(10)} while n: dic[n % 10] += 1 n //= 10 if dic[6] + dic[9]: dic[6]..

백준 14503번 로봇 청소기 파이썬

리뷰1이 벽이 아니라 청소된 공간으로 이해하여 시간이 꽤 걸렸다. 문제 풀이모든 입력값을 가져오고 방향을 나타낼 리스트를 초기화 해준다.정답을 나타낼 result 변수와 청소가 완료된 상태를 나타낼 배열을 초기화 해준다.현재 위치가 청소되지 않은 상태라면 청소된 상태로 바꾸어 주고 result에 1을 더해준다.움직일 공간이 있는지를 나타낼 변수를 False 상태로 초기화 해준다.방향을 시계 반대 방향으로 90도를 회전하며 해당 방향 앞에 청소 되지 않은 상태인 빈 공간이 있다면 이동한다.4방향 모두 청소 되지 않은 빈 공간이 없다면 후진을 하고, 이동할 수 없다면 루프를 종료한다.result 변수에 저장된 값을 출력한다. 참고 사항방의 가장 북쪽, 가장 남쪽, 가장 서쪽, 가장 동쪽 줄 중 하나 이상에 ..

백준 10808번 알파벳 개수 파이썬

리뷰딕셔너리를 활용하여 풀었다. 브론즈4가 맞는지!? 문제 풀이a~z까지의 키를 갖는 딕셔너리를 값이 0인 상태로 초기화 해준다입력받은 문자열의 단어를 돌며 해당 키값의 값을 1올려준다.딕셔너리의 value를 개행하여 출력해준다. 참고 사항chr을 사용하면 딕셔너리 초기화가 용이하다.  정답 코드def q10808(): # 백준 10808번 알파벳 개수 파이썬 s = input() alpha = {chr(i): 0 for i in range(97, 123)} for i in s: alpha[i] += 1 print(*alpha.values())q10808()

백준 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..

728x90