본문 바로가기

728x90
반응형

개발공부/문제풀이

(20)
백준 : 17485 진우의 달여행 - 파이썬(python) https://www.acmicpc.net/problem/17485 17485번: 진우의 달 여행 (Large) 첫줄에 지구와 달 사이 공간을 나타내는 행렬의 크기를 나타내는 N, M (2 ≤ N, M ≤ 1000)이 주어진다. 다음 N줄 동안 각 행렬의 원소 값이 주어진다. 각 행렬의 원소값은 100 이하의 자연수이다. www.acmicpc.net 주어진 길만보고 bfs로 푸는건 줄 알았는데 아니었다 그냥 구현해서 하나하나 더해보는 방식으로 풀어보려다가 생각이 잘안나서 블로그 글을 참조 했습니다. 출처 https://maeng2world.tistory.com/470 N, M, map 입력 받습니다. dp용으로 사용할 3차원 배열을 만듭니다. 방향 정보가 들어가 있으므로 3차원으로 만듭니다. 초기 값은 ..
프로그래머스 : 보석 쇼핑 - 파이썬 rn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 배열의 크기가 10만 이하이므로 시간 복잡도를 고려하여 풀어야하는 문제라고한다. 시간 복잡도를 잘몰라서 무작정 구현(?) 하려고 했는데 여러 풀이들을 찾아보니 슬라이딩 윈도우(투 포인터) 알고리즘을 사용한다고 한다 근데 아직 잘모르겠다...ㅠㅠ 1. 초기값 설정 start, end 인덱스 모두 인덱스 0에서 시작하는 것으로 세팅한다. dic[gems[start]] +=1 , 즉 dic['DIA']에 +1을 해준다. 이 때, 처음 갖는 보석이므로 check_num..
프로그래머스 : 양궁대회 - 파이썬 https://programmers.co.kr/learn/courses/30/lessons/92342?language=java 코딩테스트 연습 - 양궁대회 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원 programmers.co.kr 나의 코드 from collections import deque def bfs(n, info): res = [] q = deque([(0, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])]) maxGap = 0 while q: focus, arrow = q.popleft() if sum(arrow) == n: # 종료조건 1) ..
프로그래머스 - 불량 사용자(2019 카카오 개발자 겨울 인턴십) 파이썬(python) https://programmers.co.kr/learn/courses/30/lessons/64064?language=java 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 풀이 유저 ID를 불량 아이디 개수에 맞게 조합하여 탐색 - 매칭되는 유저와 불량 아이디의 길이가 같아야함 - 불량 사용자와 유저의 문자를 비교 - 불량 사용자의 문자가 '*'이 아니라면 유저와 같은 문자여야함 * 위의 조건에 부합하고 현재 조합된 유저 아이디가 List에 없다면 List에 추가 from itertools import p..
백준 2343 : 기타레슨 파이썬(python) https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net # 블루레이에는 총 N개의 강의 # i번 강의와 j번 강의를 같은 블루레이에 녹화하려면 i와 j 사이의 모든 강의도 같은 블루레이에 녹화 # M개의 블루레이는 모두 같은 크기 n, m = map(int, input().split()) data = list(map(int, input().split())) left, right = max(data), sum(data) while left mid: cnt +=..
백준 11052 : 카드 구매하기 (파이썬, python) https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 단순히 개수별로 최대값을 구하면 되겠다고 생각하여 간단하게 풀었으나 마지막 예제에서 오답이나왔다. 다시 생각해서 마지막 예제만을 고려하니 다른 답이 틀리게 나왔다 ㅠㅠ 틀린풀이 # 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) # # 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) n = int(input()) card..
프로그래머스 - 다트 게임(2018 KAKAO BLIND RECRUITMENT) https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다. 다트 게임은 총 3번의 기회로 구성된다. 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨 시 점수에서 1제..
백준 10974 모든 순열 파이썬(python) https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 파이썬 내장 라이브러리를 사용하면 쉽게 구할 수 있다. 나의 코드 #|A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| from itertools import permutations n = int(input()) array = list(map(int,input().split())) arr_per = permutations(array) #모든경우의수(수열)을 만들어준다 cnt = [] for arr in arr_per: sum = 0 for..

728x90
반응형