파이썬 프로그래머스 : 신규 아이디 추천
·
Algorithm/python 프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/72410# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다.다음은 카카오 아이디의 규칙입니다.아이디의 길이는 3자..
파이썬 백준 5557번 : 1학년
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/5557   🎒풀이알고리즘다이나믹프로그래밍자료구조딕셔너리 1. 수와 그 수의 개수를 각각 key와 value로 갖는 딕셔너리를 선언한다.2. 입력받은 nums에서 수를 하나씩 꺼내며 딕셔너리를 업데이트한다. 2-1. 업데이트는 더한수가 20이하일때, 뺀 수가 0이상일때 temp 딕셔너리의 수를 증가시키는 방식으로 이루어진다.2-2. 딕셔너리에 있던 모든 값이 업데이트되면 nums_dict가 temp로 업데이트 된다.3. 더해서 result가 된 수의 개수이므로 nums_dict[result]를 출력한다. import sysfrom collections import dequeN = int(sys.stdin.readline())nums = deq..
파이썬 백준 2660번 : 회장뽑기
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/2660  🏅풀이알고리즘다익스트라자료구조인접리스트(그래프표현), 최소힙(다익스트라) 자신을 0으로 두고 자신과 연결된 노드의 dist배열을 업데이트 하면서 해결했다.결국 dist의 max를 return 한다. 예제 1번의 경우 3의 dist배열은 [1000001, 2, 1, 0,1,1]이다. return 전 0인덱스를 -1로 초기화 하므로 max(dist)는 2이다. import sysimport heapqdef dijkstra(s): dist=[1000001]*(N+1) #dist는 0부터 N까지 heap=[] visited=set() dist[s]=0 heapq.heappush(heap,(0,s)) whil..
파이썬 프로그래머스 : 길찾기 게임
·
Algorithm/python 프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/42892# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 전무로 승진한 라이언은 기분이 너무 좋아 프렌즈를 이끌고 특별 휴가를 가기로 했다.내친김에 여행 계획까지 구상하던 라이언은 재미있는 게임을 생각해냈고 역시 전무로 승진할만한 인재라고 스스로에게 감탄했다.라이언이 구상한(그리고 아마도 라이언만 즐거울만한) 게임은, 카카오 프렌즈를 두 팀으로 나누고, 각 팀이 같은 곳을 다른 순서로 방문하도록 해서 먼저 순회를 마친 팀이 승리하는 것이다.그냥 지도를..
파이썬 프로그래머스 : 양궁대회
·
Algorithm/python 프로그래머스
문제https://school.programmers.co.kr/learn/courses/30/lessons/92342  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr카카오배 양궁대회가 열렸습니다.라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다.카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다.어피치가 화살 n발을 다 쏜 후에 라이언이 화살..
파이썬 백준 1504번 : 특정한 최단경로
·
Algorithm/python 백준
제목https://www.acmicpc.net/problem/1504  풀이알고리즘 : 다익스트라자료구조 : 인접리스트,  최소힙 import sysimport heapqdef dijkstra(s,e): #다익스트라 알고리즘 heap=[] heapq.heappush(heap,s) #힙에 시작노드 넣기 dist[s]=0 visited.add(s) #방문처리 while heap: v1=heapq.heappop(heap) for node in Graph[v1]: #연결된 노드 들 중방문되지 않았고 기존거리보다 거쳐서가는거리가 더 작은경우 dist갱신 if node[0] is not visited and dist[node[0]]>..
파이썬 백준 1261번 : 알고스팟
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/1261  풀이알고리즘BFS자료구조리스트(인접행렬) import sysfrom collections import dequedef BFS(): queue=deque() queue.append((0,0,0)) while queue: x,y,b=queue.popleft() for i in range(4): #상,하,좌,우 탐색 n_x=x+dx[i] n_y=y+dy[i] if 0 visited 업데이트if N==M==1: #1 1 0 일경우 반례처리 print(maps[0][0])else: print(visited[M-1][N-1])  덧)1..
파이썬 백준 1253번 : 좋다
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/1253  풀이알고리즘투포인터자료구조리스트  start와 end를 설정해두고 값의 합에 따라 start또는 end를 이동시키며 해결했다. import sysn = int(sys.stdin.readline())nums = list(map(int, sys.stdin.readline().split()))nums.sort()result=0for i in range(len(nums)): start=1 if i==0 else 0 #start 설정 end=i-1 if i==len(nums)-1 else len(nums)-1 #end 설정 while True: if start>=end or start=len(nums): #종료조건..
파이썬 백준 14002번 : 가장 긴 증가하는 부분 수열 4
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/14002   풀이다이나믹 프로그래밍으로 풀었다.아래 문제에서 부분수열을 출력해야한다는 점만 추가되었다. https://pleasestudy-alswldi.tistory.com/174 파이썬 백준 11053번 : 가장 긴 증가하는 부분 수열문제https://www.acmicpc.net/problem/11053  풀이다이나믹 프로그래밍으로 해결했다.1. dp테이블의 모든 값을 1로 초기화 한다.2. 수열의 수를 순회한다.2-1. 그 이전의 수가 자신보다 작을 경우2-2 . 자신의pleasestudy-alswldi.tistory.com11053번에서 현재까지의 증가하는 수열을 담을 dp_result만 추가해 주었다.import sysn = int(..
파이썬 백준 11053번 : 가장 긴 증가하는 부분 수열
·
Algorithm/python 백준
문제https://www.acmicpc.net/problem/11053  풀이다이나믹 프로그래밍으로 해결했다.1. dp테이블의 모든 값을 1로 초기화 한다.2. 수열의 수를 순회한다.2-1. 그 이전의 수가 자신보다 작을 경우2-2 . 자신의 dp값과 해당 수의 dp값 +1 중 큰 값으로  dp테이블을 업데이트 한다.3. dp테이블에서 가장 큰 값을 출력한다. import sysn = int(sys.stdin.readline())sequence = list(map(int, sys.stdin.readline().split()))dp = [1] * (n+1)for i in range(len(sequence)): for j in range(i): #이전까지의 수가 현재보다 작으면 dp테이블 값 조회 ..
✿(๑❛ڡ❛๑)✿
'분류 전체보기' 카테고리의 글 목록 (12 Page)