본문 바로가기

🔅코딩테스트 공부🔅/❗백준138

[백준] 1244번 스위치 켜고 끄기(python) https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net 1. 난이도 실버 4 2. 내가 작성한 코드 출력 형식이 잘못됐다는 에러가 뜨시는 분들은 출력의 조건을 잘 확인하시길 (나도 이걸 놓쳐서 틀렸었다.) * 스위치의 상태를 1번 스위치에서 시작하여 마지막 스위치까지 한 줄에 20개씩 출력한다. 1과 0을 변환해주기 위해 if문을 써도 괜찮지만 (value + 1) % 2 를 해주면 더 간결해진다. n = int(input()) switch = .. 2023. 4. 15.
[백준] 4396번 지뢰 찾기(python) https://www.acmicpc.net/problem/4396 4396번: 지뢰 찾기 지뢰찾기는 n × n 격자 위에서 이루어진다. m개의 지뢰가 각각 서로 다른 격자 위에 숨겨져 있다. 플레이어는 격자판의 어느 지점을 건드리기를 계속한다. 지뢰가 있는 지점을 건드리면 플레이어 www.acmicpc.net 1. 난이도 실버4 2. 내가 작성한 코드 지뢰가 있는 칸이 열렸다면 지뢰가 있는 모든 칸이 별표(*)로 표시되어야 한다. 다른 모든 지점은 온점(.)이어야 한다. 라는 조건이 있어서 "이미 열린 칸"을 포함해서 모두 온점으로 print했더니 틀렸다. 읭? 이라는 생각과 함께 질문게시판을 찾아보니 x에 대해서는(=이미 열린 칸에 대해서) 지뢰의 개수를 표시해줘야 한다고,, 암튼 수정해서 맞출 수 있.. 2023. 4. 14.
[백준] 2578번 빙고(python) https://www.acmicpc.net/problem/2578 2578번: 빙고 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 www.acmicpc.net 1. 난이도 실버 4 2. 내가 작성한 코드 구현 이 친구 문제를 풀 때 생각보다 시간이 오래걸린다. 아직 훈련이 덜 되어 있나 봄 bingo = [list(map(int, input().split())) for _ in range(5)] #최초의 빙고판 answer = [] for i in range(5): #answer을 1차원 배열로 입력 받기 for j in input().split(): answer.a.. 2023. 4. 13.
[백준] 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.
[백준] 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.
[백준] 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.