개인활동(92)
-
[프로그래머스] x만큼 간격이 있는 n개의 숫자
def solution(x, n): answer = [x*(i+1) for i in range(n)] return answer 종강하고 다시 돌아온 코테 스터디. 오늘은 프로그래머스의 x만큼 간격이 있는 n개의 숫자를 풀었다. 어려운 문제는 아니라 쉽게 풀었다. def number_generator(x, n): # 함수를 완성하세요 return [i for i in range(x, x*n+1, x)]그리고 다른 사람의 코드를 보던 중.. 이 방법이 있었지. 잊고 있었다. 오늘의 문풀 끝.
2024.06.25 -
백준 24511번 : queuestack
https://www.acmicpc.net/problem/24511 import sys from collections import deque n = int(sys.stdin.readline()) list_a = list(map(int, sys.stdin.readline().split())) # 0 1 1 0 (0 = queue, 1 = stack) list_b = list(map(int, sys.stdin.readline().split())) # 1 2 3 4 m = int(sys.stdin.readline()) list_c = list(map(int, sys.stdin.readline().split())) res = deque() for qs in range(n): if list_a[qs] == 0: ..
2024.06.07 -
백준 2346번 : 풍선 터트리기
https://www.acmicpc.net/problem/2346 import sys from collections import deque n = int(sys.stdin.readline()) deq = deque(enumerate(map(int, sys.stdin.readline().split()), start=1)) for _ in range(n): en_deq = deq.popleft() print(en_deq[0], end=' ') if en_deq[1] > 0: deq.rotate(-(en_deq[1] - 1)) else: deq.rotate(-en_deq[1]) 인덱스를 넣어주기 위한 방법 중 리스트의 인덱스를 추출하는 방법이 아닌 다른방법이 무엇이 있을지 고민하며 다른 사람들의 코드를 보던 ..
2024.06.07 -
백준 28279번 : 덱2
https://www.acmicpc.net/problem/28279n = int(input())deque = []for _ in range(n): cmd = list(input().split()) if cmd[0] == '1': deque.insert(0, cmd[1]) elif cmd[0] == '2': deque.append(cmd[1]) elif cmd[0] == '3': if deque: print(deque[0]); del deque[0] else: print(-1) elif cmd[0] == '4': if deque: print(deque[-1]); del deque[-1] else: print(-1) elif ..
2024.06.05 -
백준 11866번 : 요세푸스 문제 0
https://www.acmicpc.net/problem/11866from collections import dequen, k = map(int, input().split())people = deque([i for i in range(1, n+1)])pop_list = []for _ in range(n): people.rotate(-k) pop_list.append(people.pop())print("") 이 문제를 어떻게 해결하는 것이 좋을지 고민하던 중 deque에서 쓸 수 있는 rotate를 이용하면 편할 것이라고 생각하였고,그 결과 잘 출력되는 것을 확인하였다. 시계방향으로 k번째 요소를 뒤로 보내고, 맨 뒤의 요소만 출력해 pop_list에 넣어주었다. 다음은 숏코드 분석n,k=map..
2024.06.04 -
[프로그래머스] 하샤드 수
하. 이 문제 좀 짜증났다. 입출력 예에 return 값이 소문자로 되어있어서 당연히 문자열로 return하였는데,def solution(x): if len(str(x)) == 1: return "true" x_sum = sum(list(map(int, str(x)))) if x % x_sum: return "false" else: return "true"계속 위와 같이 실행한 결괏값 "false"이 기댓값 false과 다릅니다. 실행한 결괏값 "true"이 기댓값 true과 다릅니다.이런식으로 결과가 출력되었다. 너어어어무 짜증나서 다른사람들 return값을 찾아보니 걍 아래와 같이 return하더라...def solution(x): if len(str(x)) == 1: re..
2024.06.03 -
[프로그래머스] 평균 구하기
import numpy as npdef solution(arr): return np.mean(arr) import statistics as sdef solution(arr): return s.mean(arr) def solution(arr): return sum(arr) / len(arr) 다양한 방식이 있을텐데, 대부분 비슷한 형태를 보였고, 0이 들어온 경우에는 따로 연산 없이 0을 return하도록 조건을 추가해준 코드가 있었다. 이 문제는 깊게 더 볼 것은 없는 듯 하다. 끝~
2024.06.01 -
[프로그래머스] 짝수와 홀수
def solution(num): return "Even" if num % 2 == 0 else "Odd" 여기서 나머지가 아닌 다른 방법이 있을까 고민해보았는데, 다른사람의 코드 중 엄청난 사실을 확인하였다.def evenOrOdd(num): return ["Even", "Odd"][num & 1] 와..... 어떻게 이럴수가...........여기서는 입력받은 num과 1로 비트연산을 수행한다. 예를 들어 입력받은 수가 3이라고 한다면 이는 이진수로 011이다.1은 001이기에 이 둘을 and 연산을 하면 011001-------001이 최종적인 결과로 나오게 된다. 럴수럴수 이럴수가. 재미있는 풀이였다.
2024.06.01 -
백준 2164번 : 카드2
https://www.acmicpc.net/problem/2164 from collections import dequen = int(input())deck = deque([i for i in range(1, n+1)])for _ in range(n): if len(deck) == 1: print(deck[0]) break deck.popleft() deck.append(deck.popleft())이 문제에서도 마찬가지로 deque를 이용해 문제를 풀었다. 여기서 주의해야 할 점은 n은 1부터 입력되기에, deck의 길이가 1인 경우 남은 카드를 바로 출력해줄 수 있도록 하였다.이 조건을 생각 안하고 작업 후 남은 카드의 갯수가 1인지 확인하다보니 index err..
2024.05.31 -
백준 28278번 : 스택 2
28278번: 스택 2첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.www.acmicpc.net무엇이 문제일까?왜 시간 초과일까?숏코드를 보고싶었는데, 공개된 코드가 안보인다n = int(input())stack = []for _ in range(n): order = list(map(int, input().split())) if order[0] == 1: stack.append(order[1]) elif order[0] == 2: if stack: print(stack.pop()) else: pr..
2024.05.30