본문 바로가기

👩🏻‍💻 Front-end/👾 Algorithm53

백준 1598 - 꼬리를 무는 숫자 나열 (직각거리 구하기) (Python) 시간 제한: 2초 메모리 제한: 128MB 문제 동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 그 녀석은 원주 부근을 돌아다니다가 코레스코 콘도에서 아주 재밌는 놀이를 발견했다. 그 놀이의 이름은 바로 “꼬리를 무는 숫자 나열”. 이제부터 원숭이가 그토록 좋아하던 그 놀이를 파헤쳐보자. 놀이의 방법은 간단하다. 일단 4줄짜리 표에 왼쪽부터 수를 아래로 1부터 순서대로 적어나간다. 다음에 그 예가 잘 나타나있다. 이제 원숭이는 두 개의 자연수를 아무거나 생각한다. 그리고 숫자판에서 두 개의 자연수 사이의 직각거리를 구하면 된다. 여기서 직각거리는 동서방향거리와 남북방향거리의 합을 뜻한다. 예를 들어 저 숫자판에서 11과 33을 생각했다고 하자. 그렇다면 11과 33사이의 직각거리는 8이 된.. 2022. 4. 20.
백준 1267 - 핸드폰 최소 요금제 구하기 (Python) 시간 제한: 2초 (72ms) 메모리 제한: 128MB (30840KB) 문제 동호는 새악대로 T 통신사의 새 핸드폰 옴머나를 샀다. 새악대로 T 통신사는 동호에게 다음 두 가지 요금제 중 하나를 선택하라고 했다. 영식 요금제 민식 요금제 영식 요금제는 30초마다 10원씩 청구된다. 이 말은 만약 29초 또는 그 보다 적은 시간 통화를 했으면 10원이 청구된다. 만약 30초부터 59초 사이로 통화를 했으면 20원이 청구된다. 민식 요금제는 60초마다 15원씩 청구된다. 이 말은 만약 59초 또는 그 보다 적은 시간 통화를 했으면 15원이 청구된다. 만약 60초부터 119초 사이로 통화를 했으면 30원이 청구된다. 동호가 저번 달에 새악대로 T 통신사를 이용할 때 통화 시간 목록이 주어지면 어느 요금제를 .. 2022. 4. 20.
백준 1212 - N개의 정수의 합 S의 부호 구하기 (Python) 시간 제한: 2초 메모리 제한: 256 MB 문제 N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오. 입력 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다. 출력 총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다. S=0이면 "0"을, S>0이면 "+"를, S 0: print('+') elif sum(num) < 0: print('-') else: print(0) 풀이 이 문제의 알고리즘은 간단한데 시간초과가 될 가능성이 높다. 보통 input() 내장.. 2022. 4. 20.
백준 1212 - 8진수를 2진수로 변환 (Python) 시간 제한: 1초 메모리 제한: 256 MB 문제 8진수가 주어졌을 때, 2진수로 변환하는 프로그램을 작성하시오. 입력 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. 출력 첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다. a = input() a = int(a, 8) # 8진수를 10진수로 변환 print(format(a, 'b')) # 10진수를 2진수로 변환 10진수를 2진수로 나타내는 방법은 여러가지가 있다. print(format(a, 'b')) # 접두어 미포함 => 11001100 print(format(a, '#b')) # 접두어 0b 포함 => 0b11001100 print(bin(a)) # 접두.. 2022. 4. 19.