Home

[백준] 2884번 알람 시계 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/2884 2. 풀이 2.1. 풀이1 h, m = map(int, input().split()) print((h-1)%24 if m-45<0 else h,(m-45)%60) 2.2. 풀이2 a,b = map(int, input().split()) x = a*60 + b-45 print(x//60%24,x%60)

Read more

[백준] 20055번 컨베이어 벨트 위의 로봇 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/20055 2. 풀이 삼성 SW 역량테스트 문제입니다. 삼성 문제에서 쉬운 편이라고 하지만 저는 시간초과로 많은 시간을 보냈습니다. 풀이 순서는 아래와 같습니다. 2.1. 시간초과 코드 이 문제를 풀때 자료구조는 리스트만 사용했고, 회전하는 경우에는 queue를 사용하는 것이 아니라 index만 하나씩 증가시켜서 시작점만 갱신해주는 방법을 사용했습니다. 로봇은 list에 들어있고, 들어온 순서대로 자신의 위치를 가지고 있습니다. 처음 푼 문제는 시간초과를 받았습니다. 아래와 같은 예제를 정답 소스코드에 넣어보면 199800 번의 roun...

Read more

[백준] 11286번 절댓값 힙 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/11286 2. 풀이 해당 문제는 heap을 이용하여 문제를 해결해야 합니다. heap에 (절대값, 원래값) 을 넣어서 정렬하게 되면, 절대값 순서대로 정렬하고 절대값이 동일한 경우에는 원래값 순서대로 정렬하게 됩니다. 2.1. 시간초과 코드 python 에서 input 을 그대로 이용하면 heap 을 이용하더라도 시간초과가 발생하게 됩니다. 아래의 코드는 pypy로 제출해도 통과하지 못합니다. N = int(input()) arr = [] for _ in range(N): a, b = map(int, input().split()...

Read more

[백준] 11651번 좌표 정렬하기 2 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/11651 2. 풀이 파이썬 튜플에 (x, y) 형태로 정렬하면, x를 기준으로 정렬하고 x가 동일한 경우에는 y를 정렬합니다. 튜플에 (y, x) 순서로 입력받은 값을 넣고 정렬하면 손쉽게 문제를 해결할 수 있습니다. 해당 소스코드로는 pypy를 이용하여 제출해야 시간초과가 발생하지 않고 문제가 해결되었습니다. N = int(input()) arr = [] for _ in range(N): a, b = map(int, input().split()) arr.append((b,a)) [print(x[1], x[0]) for x ...

Read more

[백준] 11650번 좌표 정렬하기 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/11650 2. 풀이 파이썬 튜플에 (x, y) 형태로 정렬하면, x를 기준으로 정렬하고 x가 동일한 경우에는 y를 정렬합니다. 해당 소스코드로는 pypy를 이용하여 제출해야 시간초과가 발생하지 않고 문제가 해결되었습니다. N = int(input()) arr = [] for _ in range(N): a, b = map(int, input().split()) arr.append((a,b)) [print(x[0], x[1]) for x in sorted(arr)]

Read more

[백준] 10814번 나이순 정렬 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/10814 2. 풀이 python sort 는 기본적으로 stable sort 를 지원하기 때문에, 나이를 기준으로 정렬하면 손쉽게 문제를 해결할 수 있습니다. N = int(input()) arr = [] for _ in range(N): a, b = input().strip().split() arr.append((int(a),b)) [print(x[0], x[1]) for x in sorted(arr, key=lambda x: x[0])]

Read more

[백준] 1181번 단어 정렬 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/1181 2. 풀이 중복을 제거해주기 위하여 모든 문자열을 집합(set)에 저장합니다. 저장한 집합을 리스트(list)로 변경한 이후에, (길이, 문자열) 튜플을 생성하여 정렬을 하면 바로 문제가 해결됩니다. N = int(input()) arr = set() [arr.add(input()) for _ in range(N)] arr = sorted([(len(x), x) for x in arr]) [print(x[1]) for x in arr] 아래와 같이 key를 사용해도 문제가 해결 가능합니다. N = int(input(...

Read more