반응형

분류 전체보기 651

백준 2167번 2차원 배열의 합 파이썬

리뷰for문과 2차원 배열로 문제를 풀이했다. 통과는 했으나 시간이 많이 걸려서 최적화가 필요해 보인다. 문제 풀이2차원 배열을 받아온다.k와 합을 구할 범위를 각각 가져온 후 행과 열을 돌며 슬라이싱을 통해 합계를 result에 저장해 준다.각 케이스 마다 result값을 출력해 준다.  참고 사항각 i, j값은 -1씩 해줘야 한다.  정답 코드def q2167(): # 백준 2167번 2차원 배열의 합 파이썬 n, m = map(int, input().split()) lst = [list(map(int, input().split())) for _ in range(n)] k = int(input()) for _ in range(k): i, j, x, y = map..

백준 2455번 지능형 기차 파이썬

리뷰max값을 활용한 문제 문제 풀이현재 탑승중인 승객을 나타낼 변수와 최대 탑승객을 나타낼 변수를 각각 0으로 초기화 해준다.4번에 걸쳐 현재 탑승중인 인원과 매 회 탑승 인원 중 최대값을 최신화 해준다.최대 탑승객을 출력해 준다.  참고 사항없음  정답 코드def q2455(): # 백준 2455번 지능형 기차 파이썬 cur = 0 max_val = 0 for _ in range(4): o, i = map(int, input().split()) cur -= o cur += i max_val = max(max_val, cur) print(max_val)q2455()

백준 2744번 대소문자 바꾸기 파이썬

리뷰ord와 chr이용하기 문제 풀이문자열을 받아온 후 빈 문자열 ns를 초기화 해준다.s의 각 문자를 받아 ord를 통해 정수로 변경해 준 뒤 temp 변수로 받아와 준다.a의 아스키코드는 97 A의 아스키코드는 65로 temp가 97이상일 경우 소문자, 아닐 경우 대문자 이다.temp가 97이상일 경우 32를 빼준 후 chr로 변환해 ns에 더해준다. 97미만일 경우 반대로 32를 더해준다.  참고 사항대문자와 소문자 아스키코드 차이는 32로 고정이다.  정답 코드def q2744(): # 백준 2744번 대소문자 바꾸기 파이썬 s = input() ns = '' for i in s: temp = ord(i) if temp >= 97: ..

백준 3190번 뱀 파이썬

리뷰구현문제는 항상 어렵고 시간이 많이 걸린다.. 문제 풀이뱀의 길이를 늘인 후 줄여줘야 하기에 덱을 사용한다. collections을 import해준다.n값을 받아온 후 n * n크기의 2차원 배열을 만들어 준다. 값은 모두 0으로 초기화 해준다.사과의 위치를 받아준 후 해당 위치의 2차원 배열의 값을 1로 변경해 준다.방향 변환 정보를 받아와 준 후 방향 변환 인덱스를 0으로 초기화 해준다.방향 정보를 동서남북 4가지로 만들어 준 후 방향 인덱스를 0으로 초기화 해준다.뱀 정보를 덱으로 만들어 준 후 초기 좌표인 0, 0을 튜플로 넣어준다.time을 0으로 초기화 해준다.while루프를 실행하고 time을 1 올려준다.뱀이 이동할 다음 좌표를 구해준 후 뱀이 2차원 배열을 벗어나거나 몸에 닿지 않을 ..

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

728x90
반응형