본문 바로가기

알고리즘

(158)
백준)블랙잭 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net from itertools import combinations a,b = map(int,input().split()) c = list(map(int,input().split())) arr = [] for i in combinations(c,3): arr.append(sum(i)) answer = 0 for i in arr: if i
프로그래머스)문자열 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 구현문제로 보인다. 풀이는 매우 간단했고, 아이디어 또한 금방 떠올랐는데 문제가 있었다. 처음 제출한 코드를 보자. def solution(s): answer = 0 same = 0 diff = 0 length = len(s) idx = 0 while s: print(s) if s == '': answer+=1 break if idx >= len(s): answer += 1 break..
백준)영역구하기 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net import sys sys.setrecursionlimit(10000) def dfs(x,y,count): arr[x][y] = 1 for i in range(4): nx = dx[i] + x ny = dy[i] + y if (0
프로그래머스)2개 이하로 다른 비트 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 제출한 코드 def solution(numbers): answer = [] for num in numbers: binary = str(bin(num))[2:] count = num + 1 while True: count_bin = str(bin(count))[2:] if len(count_bin) > len(binary): binary = '0' * (len(count_bin) - len(b..
프로그래머스)[1차] 프렌즈 4블록 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(m, n, board): answer = 0 arr = [] for i in range(len(board)): a = list(board[i]) arr.append(a) remove_idx = [] def dfs(x,y,char): dx = [0,1,1] dy = [1,0,1] isTrue = True for i in range(3): nx = dx[i] +x ny = dy..
프로그래머스)[3]차 n진수 게임-python https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n_dic1 = { 0: '0', 1: '1', 2: '2', 3: '3', 4: '4', 5: '5', 6: '6', 7: '7', 8: '8', 9: '9', 10: 'A', 11: 'B', 12: 'C', 13: 'D', 14: 'E', 15: 'F' } def change_10_to_n(n, value): result = '' q, r = divmod(n, value) while q > 0..
*프로그래머스)거리두기 확인하기 https://school.programmers.co.kr/learn/courses/30/lessons/81302 쉽게 말하면, 2차원 배열 안에 P를 기준으로 거리가 2 이내에 다른 P가 있는지, 있다면 그 사이에 X가 있는지, O가 있는지 판별하는 문제이다. from collections import deque def bfs(x,y,arr): visit = [[False for _ in range(5)] for _ in range(5)] q = deque() dx = [0,0,1,-1] dy = [1,-1,0,0] visit[x][y] = True q.append((x,y,0)) while q: x, y, distance = q.popleft() if distance > 2: continue if a..
*프로그래머스)[3]차 방금그곡 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import math def sharp(m): m = m.replace('C#','c').replace('D#','d').replace('F#','f').replace('G#','g').replace('A#','a') return m def solution(m, musicinfos): answer = '' max_time = 0 m = sharp(m) for info in musicinfos: #..