본문 바로가기

Coding test

(123)
[백준/14499/파이썬] 주사위 굴리기 - 구현 소스코드 # 입력받기 import sys input = sys.stdin.readline N,M,x,y,cmd = map(int,input().split()) board = [] for _ in range (N): board.append(list(map(int,input().split()))) direct = list(map(int,input().split())) # 1:동 2:서 3:북 4:남 dx = [0,0,0,-1,1] dy = [0,1,-1,0,0] # 상, 우, 앞 urf = [1,3,5] dice = [0] * 7 def new_urf(direction, urf): u,r,f = urf[0],urf[1],urf[2] if direction == 1: urf = [7-r,u,f] elif di..
sort(), sorted() 실행 시간 in 백준 개요파이썬 코테 스터디를 진행하던 도중 팀원의 sort(),sorted()에 대해 시간복잡도 차이가 난다고 했어요. Timsort()를 이용해서 n log (n)의 안정된 시간 복잡도를 둘 다 사용하는데 왜 백준에서 실행을 했을 때  Timsort 알아보기 : https://d2.naver.com/helloworld/0315536 sort()만 정답처리가 됐는지 궁금해서 실험을 해봤습니다.실험 결과import timeimport statisticsimport randomimport string# 10회 비교sorted_value = []sort_value = []for _ in range (10):# 더미 데이터 생성 dummy_input_a = [f'{random.choice(string.ascii_..
[프로그래머스/파이썬/가장 큰 정사각형 구하기] https://school.programmers.co.kr/learn/courses/30/lessons/12905 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(board): answer = 0 col = len(board) row = len(board[0]) dp = [[0] * row for _ in range (col)] for i in range (col): for j in range (row): if board[i][j] == 1: dp[i][j] += 1 if i
[프로그래머스/Lv.1/파이썬] 비밀지도 https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 def solution(n, arr1, arr2): answer = [] for i in range (n): secret = arr1[i] | arr2[i] maps = bin(secret) maps = maps[2:] maps = maps.rjust(n,'0') maps = maps.replace('1','#') maps = maps.replace('0',' ') answer.appen..
[프로그래머스/Lv.1/파이썬] 다트게임 https://school.programmers.co.kr/learn/courses/30/lessons/17682 소스코드 def solution(dartResult): answer = 0 score = [] for i in range (len(dartResult)): #숫자 추출 if dartResult[i].isdigit(): if dartResult[i] == '1' and dartResult[i+1] == '0': score.append(10) elif dartResult[i] == '0' and dartResult[i-1] == '1': continue else : score.append(int(dartResult[i])) #보너스 계산 else : if dartResult[i] == 'D': ..
[프로그래머스/Lv.1/파이썬] 키패드 누르기 https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 소스코드 def solution(numbers, hand): answer = '' def distance(a,b): x = abs((a+2) % 3 - (b+2) % 3) y = abs((a-1)//3 - (b-1) //3) return x +y left = [1,4,7] right = [3,6,9] l,r = 10,12 for num in numbers : if num == 0: num = 11..
[프로그래머스/Lv.1/파이썬] 성격 유형 검사하기 https://school.programmers.co.kr/learn/courses/30/lessons/118666 소스코드 def solution(survey, choices): answer = '' mbti = {'R':0,'T':0,'C':0,'F':0,'J':0,'M':0,'A':0,'N':0} for idx,pro in enumerate (survey): if choices[idx] 4 : mbti[pro[1]] += choices[idx] - 4 answer += 'R' if mbti['R'] >= mbti['T'] else 'T' answer += 'C' if mbti['C'] >= mb..
[백준/9465/파이썬] 스티커 - DP 소스코드 T = int(input()) def sticky(sticker, dp): dp[0][0] = sticker[0][0] dp[1][0] = sticker[1][0] if n == 1: return max(dp[0][0], dp[1][0]) dp[0][1] = sticker[0][1] + sticker[1][0] dp[1][1] = sticker[1][1] + sticker[0][0] if n == 2: return max(dp[0][1], dp[1][1]) for i in range (2,n): dp[0][i] = max(dp[1][i-2], dp[1][i-1]) + sticker[0][i] dp[1][i] = max(dp[0][i-2], dp[0][i-1]) + sticker[1][i] ret..