https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B www.acmicpc.net시간제한이 0.15초로 기존 문제들에 비해 매우 짧은 것을 알수 있다. 따라서 이문제선 반복문을 사용할수 없다. 달팽이가 올라가는걸 다더하고 빼줄시간이 없다. 그래서 사칙연산을 사용한다. 이때 함정이 있는데 만약 V미터에 한번이라도 도달했으면 미끄러지지 않는다는 것이다. 그래서무작정 A-B한 값으로 V를 나누어 버리면 안된다. 이것에 대한 해결법은 V에서 먼저 A미터를 빼버리는 것이다. 그리고 남은 값을 A-B한 값으로 나눠 올림하고 1을 더하면된다. 1을 더하는 이유는 앞에서 V-A미터를 빼는것이 하..
https://www.acmicpc.net/problem/5430 5430번: AC각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다.www.acmicpc.netR이 입력되면 배열을 뒤집고 D가 입력되면 배열의 가장 앞에있는걸 삭제해야한다. 이걸 말그대로 뒤집어버리거나 배열의 앞칸을 지우게되면 말도안되는 시간이걸려 시간제한에 걸리게 될것이다. 따라서 index와 방향을 알려주는 direction 함수들을 사용했다. forntindex는 배열 맨 앞이 얼마나 지워졌는지 알려주고 backindex는 배열 맨뒤가 얼마나 지워졌는지 알려줄 것이다. direction은 배열을 뒤집었는지 뒤집지 않았는지를 알려줄 것이다. 이렇..
https://www.acmicpc.net/problem/10815 10815번: 숫자 카드첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,www.acmicpc.netN의 값이 큰것부터가 시간이 부족함을 암시한다. 따라서 바로 정렬할수는 없다. 크기가 10,000,001인 리스트를 양수하나 음수하나해서 2개만든다. 숫자 카드에 적혀있는 수를 index로 사용해서 숫자카드가 있는 리스트 index의 value를 i로 만들어준다. 그후 구분할 정수를 숫자카드가 있는 리스트에 넣어봐서 value가 0이 아니라면 답을 저장할 리스트에 1을 넣..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.netN의 개수가 큰것 부터가 기본적으로 sort하면 시간이 부족하다는 것을 알려준다.따라서 수들을 정렬하지 않고 index로 생각해서 따로 리스트를 만든 뒤 수index의 value 값을 그수로 로 만드는 방식을 사용한다. 그후 리스트를 오름차순으로 value가 0이 아닌 index의 value만 출력해준다면 받아온 수들이 정렬된 효과를 볼수 있다.수 : 5,3,2value가 1인 값만 출력:2..
https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.www.acmicpc.net 간단하게 N개의 수를 리스트로 받아와서 오름차순으로 sort하면 되는 문제이다.N = int(input())numbers = []for i in range(N): numbers.append(int(input()))numbers.sort()for j in numbers: print(j)N : 줄의 개수를 받아옴numbers : 수가 들어있는 리스트for i in range(N) : N번 반복하면서..