본문 바로가기

전체 글229

[백준] 20546번 🐜 기적의 매매법 🐜(python) https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 1. 난이도 실버 5 2. 내가 작성한 코드 import sys input = sys.stdin.readline n = int(input().rstrip()) #주어진 돈 chart = list(map(int, input().rstrip().split())) #주식 정보 BNP = [n, 0] #준현 돈, 주식 수 TIMING = [n, 0] #상민 돈, 주식 수 for .. 2023. 4. 13.
[백준] 14467번 소가 길을 건너간 이유1(python) https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 1. 난이도 브론즈 1 2. 내가 작성한 코드 n = int(input()) #관찰 횟수 cow = {} cnt = 0 for _ in range(n): num, way = input().split() if num not in cow: #만약 딕셔너리에 없으면 key와 value 저장 cow[num] = way else: #이미 관찰된 적 있는 소의 번호인 경우 way를 조사해서 cnt 카운팅 i.. 2023. 4. 12.
[백준] 21918번 전구(python) https://www.acmicpc.net/problem/21918 21918번: 전구 $N$개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다. $1$은 전구가 켜져 있는 상태를 의미하고, $0$은 전구가 꺼져 있는 상태를 www.acmicpc.net 1. 난이도 브론즈2 상반기 코테가 슬슬 시작되려고 하고 있다. 요즘 구현이나 시뮬레이션 문제 빈도가 많이 늘어났다고 해서 쉬운 문제부터 천천히 다시 풀어갈 생각 2. 내가 작성한 코드 n,m = map(int, input().split()) #전구 개수, m명령어 개수 light = list(map(int, input().split())) for _ in range(m): op, num1, .. 2023. 4. 12.
[프로그래머스] Level2 괄호 회전하기(python) 2https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 해결 방법 stack을 이용한 문제이다. 문자열을 회전시켜준 뒤, stack을 이용해 괄호 검사를 해주면 된다. 2. 내가 작성한 코드 def solution(s): s = list(s) cnt = 0 if check(s): cnt+=1 #0회전 for i in range(1,len(s)): #1부터 n-1회전 x = s.pop(0) s.append(x) if check(s): cnt.. 2023. 3. 29.
[백준] 11265번 끝나지 않는 파티(python) https://www.acmicpc.net/problem/11265 11265번: 끝나지 않는 파티 입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸 www.acmicpc.net 1. 내가 작성한 풀이 1. 노드가 500개이다, 모든 노드에서 모든 노드까지의 최단 거리를 구해줘야 한다 => 플로이드워셜 알고리즘 이용 2. 사람의 정보를 반복해주며 가능 여부를 출력해준다. #플로이드 워셜 알고리즘은 노드가 500개 이하일 때 사용하는 것이 적합하다. import sys input = sys.stdin.readline n,m = map(in.. 2023. 3. 29.
[프로그래머스] Level2 우박수열 정적분(python) https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 해결 방법 def solution(k, ranges): x_list = [k] #우박수열 list, 처음에 k 값 넣어주고 시작 sum_list = [0] #누적합 list result = [] #결과 담을 list while k!=1: #우박수열 구하기 if k % 2 == 0: k = k // 2 else: k = k*3 + 1 x_list.append(k) for i in ran.. 2023. 3. 23.
[백준] 1707번 이분 그래프(python) https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1. 난이도 레벨4 2. 내가 작성한 코드 1. part 라는 list를 이용해 현재 노드와 이어진 노드가 각각 다른 집합을 가지고 있게 나눈다. 2. 현재 노드와 이어진 노드가 같은 집합일 경우 모순이 발생한 상황. 따라서 break 한 후 no를 출력한다. from collections import deque import sys input = sys.stdin.readline t = int(i.. 2023. 3. 20.
[백준] 1325번 효율적인 해킹(python) https://www.acmicpc.net/problem/1325 2023. 3. 20.
[백준] 18352번 특정 거리의 도시 찾기(python) https://www.acmicpc.net/problem/18352 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 1. 난이도 실버2 2. 내가 작성한 풀이 from collections import deque import sys input = sys.stdin.readline INF = int(1e9) n, m, k, x = map(int, input().rstrip().split()) distance = [INF] * (n+1) #최.. 2023. 3. 20.