본문 바로가기

분류 전체보기

(253)
파이썬) 단어 공부 -BOJ https://www.acmicpc.net/problem/1157 dic = {} # 'a'부터 'z'까지의 알파벳을 순회하며 딕셔너리에 키를 추가하고 값을 0으로 초기화합니다. for char in 'abcdefghijklmnopqrstuvwxyz': dic[char] = 0 st = input() # 소문자 st = st.lower() for s in st: dic[s] += 1 sorted_dict = dict(sorted(dic.items(), key=lambda item: item[1], reverse=True)) # 딕셔너리 첫번째의 키 값 얻기 first_key, first_value = list(sorted_dict.items())[0] # 두 번째 키와 밸류 얻기 second_key, s..
파이썬) 벌집 - BOJ https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 풀이 ..
파이썬) 삼각형과 세 변 - BOJ https://www.acmicpc.net/problem/5073 while True: a, b, c = map(int, input().split()) if a == b == c == 0: break # (sum(a,b,c) - max(a,b,c) - min(a,b,c))은 mid값 if sum([a, b, c]) - max([a, b, c])
파이썬) ZOAC 4 - BOJ https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 이 문제는 프로그래머스 "거리두기 확인하기"와 상당히 비슷하다 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. pr..
파이썬)연구소2 -BOJ from itertools import combinations from collections import deque from copy import deepcopy import sys input = sys.stdin.readline n, m = map(int, input().split()) arr = [] vi = [] for i in range(n): l = list(map(int, input().split())) arr.append(l) for j in range(len(l)): if l[j] == 2: vi.append([i, j]) result = float('inf') dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(vir): q = deque() cnt = 0 ..
파이선) 미로만들기 - BOJ https://www.acmicpc.net/problem/2665 from collections import deque n = int(input()) arr = [] for i in range(n): arr.append(str(input())) visit = [[False for _ in range(n)] for _ in range(n)] q = deque() q.append((0, 0, 0)) visit[0][0] = True dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] while q: x, y, cnt = q.popleft() if x == n-1 and y == n-1: print(cnt) break for i in range(4): nx = dx[i] + x ny = dy[..
파이썬) 뱀과 사다리 게임 - BOJ https://www.acmicpc.net/problem/16928 이 문제는 bfs처럼 보이는 구현 문제였다. 주어진 조건만 잘 살펴보면 된다. 주사위를 굴려 다음 칸으로 이동한다 만약 다음칸이, 즉 nx가 사다리라면 사다리를 타고 이동한다 nx가 뱀이라면 뱀을타고 이동한다 출발지점과 도착지점엔 뱀과 사다리가 없다 from collections import deque n, m = map(int, input().split()) ladder = [] snake = [] for _ in range(n): a, b = map(int, input().split()) ladder.append([100-a, 100-b]) for _ in range(m): a, b = map(int, input().split()) ..
파이썬) 다리 만들기 - BOJ https://www.acmicpc.net/problem/2146 import sys from collections import deque input = sys.stdin.readline dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] # 섬을 구분해주는 bfs def bfs1(i, j): global count q = deque() q.append([i, j]) vis[i][j] = True arr[i][j] = count while q: x, y = q.popleft() for k in range(4): nx = x + dx[k] ny = y + dy[k] if 0 = n: continue # 다른 땅을 만나면 기존 답과 비교하여 짧은 거리 선택 if arr[nx][ny] > 0 ..