Home

[백준] 18870번 좌표 압축 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/18870 2. 풀이 python의 set, dictionary, list 를 이용하면 아래와 같이 손쉽게 문제를 해결할 수 있습니다. N=int(input()) A=list((map(int,input().strip().split()))) B={} for i, val in enumerate(sorted(list(set(A)))): B[val] = i for val in A: print(B[val], end=' ')

Read more

[백준] 17143번 낚시왕 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/17143 2. 풀이 삼성 SW 역량테스트 문제입니다. 전반적인 문제 이해는 쉽지만, 물고기의 이동을 구현하는 것이 다소 오래 걸렸습니다. 물고기의 이동을 어떻게 훨씬 더 간단하게 구현할까 생각했지만, 다른 풀이를 봐도 크게 쉽게 풀지는 못한 것 같습니다. 방향에 따라 일일히 구현해주어야 되는 문제인 것으로 보여집니다. import copy R, C, M = map(int, input().split()) fisher_c = 0 maps = [[[] for __ in range(C)] for _ in range(R)] # d가 1인 경우는 ...

Read more

[백준] 20056번 마법사 상어와 파이어볼 _ 문제 풀이

1. 문제 https://www.acmicpc.net/problem/20056 2. 풀이 삼성 SW 역량테스트 문제입니다. 격자의 행과 열은 1번부터 N번까지 번호가 매겨져 있고, 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결되어 있다라는 문장이 처음에는 좀 헷갈렸습니다. 좀 더 읽다보니 원형 큐와 같은 구조로 1과 N이 이어져있는 구조라는 것을 알게 되었습니다. 구현은 큰 문제 없이 잘 된 문제인 것 같습니다. 풀이 방법은 아래와 같습니다. 자세한 사항은 소스코드를 봐주세요. 불들을 저장하는 list 를 생성하여 [r, c, m, s, d] 값을 저장합니다. 불들을 이동 시킨 후에...

Read more

[백준] 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