본문 바로가기

분류 전체보기464

[프로그래머스 lv1] 추억 점수 사용 언어 - Python3 문제 - 추억 점수 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 for문을 활용하기 (정답 맞춘 여부 O) def solution(name, yearning, photo): answer = [] for p in photo: total = 0 for i in range(0,len(p)): for j in range(0,len(name)): if p[i] == name[j] : total += yearning[j] answer.append(total) return answer 레퍼런스 정답 깃허브 GitHub - yyeon.. 2023. 4. 22.
[프로그래머스 lv1] 삼총사 사용 언어 - Python3 문제 - 삼총사 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 for문을 활용하기 (정답 맞춘 여부 O) def solution(number): answer = 0 for i in range(len(number)-2): for j in range(i + 1, len(number)-1): for k in range(j + 1, len(number)): if number[i] + number[j] + number[k] == 0: answer += 1 return answer 레퍼런스 정답 참고 [프로그래머스 파이썬] 달리기 .. 2023. 4. 22.
[프로그래머스 lv1] 달리기 경주 사용 언어 - Python3 문제 - 달리기 경주 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 딕셔너리를 활용한 인덱스 찾기 (정답 맞춘 여부 X) 현재 위치 : 현재 위치의 선수 현재 선수 : 현재 선수의 위치 두개의 딕셔너리를 만들어 각 위치의 선수를 바꿔주고, 각 선수의 위치를 바꿔준다. idx.values()로 player 값만 출력해 list형태로 반환한다. def solution(players, callings): idx = {i:player for i, player in enumerate(players)} p = {player:i fo.. 2023. 4. 22.
[프로그래머스 lv3] 여행경로 사용 언어 - Python3 문제 - 여행경로 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐를 활용한 BFS 문 (정답 맞춘 여부 X) q.append(("ICN",["ICN"],[])) = 출발지점airport, 경로path, 지나간 여부used for idx, ticket in enumerate(tickets)를 활용한다. ticket 첫번째 값이 airport이고, idx가 지나가지 않았다면, q.append((ticket[1], path+[ticket[1]], used+[idx]))2. 출발지점을 도착지점으로 바꿔주고, 경로에 도착지점을 .. 2023. 4. 22.
[프로그래머스 lv3] 단어 변환 사용 언어 - Python3 문제 - 단어 변환 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 큐를 활용한 이중 for문 (정답 맞춘 여부 X) 1. 예외처리 원하는 target 값이 words 리스트에 없는 경우, 0을 return 한다. 2. q = deque() 활용 q.append([begin, 0]) = q에 [시작값, 변환횟수] 형태로 입력한다. 각 원소를 x, cnt로 저장하여 while 문에서 처리 words 리스트에서 한 단어씩 확인하면서 x 값과 비교해준다. x[j] != word[j] j번째 알파벳이 다른 경우, diff += 1.. 2023. 4. 22.
[Python3] 백준 1697번 숨바꼭질 사용 언어 - Python3 문제 - 숨바꼭질 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 정답 BFS 재귀함수 (정답 맞춘 여부 X) from collections import deque def bfs(): q = deque() q.append(n) while q: x = q.popleft() if x == k: print(dist[x]) break for nx in (x-1,x+1,x*2): if 0 2023. 4. 19.
[Python3] 백준 2117번 원형 댄스 사용 언어 - Python3 문제 - 원형 댄스 2117번: 원형 댄스 N(1 ≤ n ≤ 32767)명의 사람들이 잔치에서 춤을 추게 되었다. 처음에는 1번부터 N번까지의 사람들이 차례대로, 둥글게 손을 잡고 서 있다. 그리고 춤이 끝날 때에는 이 순서가 반대(거꾸로, 뒤집힌) www.acmicpc.net 정답 규칙 찾기 구현 (정답 맞춘 여부 X) n 경우의 수 0 n == 3 => 경우의 수 1 n >= 4 => 등차수열 이용 2, 4, 6, 9, 12, 16, 20... +2씩 3번 +3씩 2번 +4씩 2번 n = int(input()) if n 2023. 4. 19.
[Python3] 백준 1713번 후보 추천하기 사용 언어 - Python3 문제 - 후보 추천하기 1713번: 후보 추천하기 첫째 줄에는 사진틀의 개수 N이 주어진다. (1 ≤ N ≤ 20) 둘째 줄에는 전체 학생의 총 추천 횟수가 주어지고, 셋째 줄에는 추천받은 학생을 나타내는 번호가 빈 칸을 사이에 두고 추천받은 순서대 www.acmicpc.net 정답 list 인덱싱 구현 (정답 맞춘 여부 X) 사진틀과 사진틀 개수를 저장할 list를 만든다. n = int(input()) #사진들 개수 c = int(input()) # 전체 학생의 총 추천 횟수 vote = list(map(int,input().split())) # 추천받은 학생을 나타내는 번호 pic = [] # 사진틀 num_pic = [] # 사진틀 추천개수 for v in vote: .. 2023. 4. 19.
[Python3] 백준 1544번 사이클 단어 사용 언어 - Python3 문제 - 사이클 단어 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 정답 큐를 활용한 구현 (정답 맞춘 여부 X) 1. 각 word를 deque로 저장해준다. picture -> p,i,c,t,u,r,e 2. dq.append(dq.popleft()) dq의 맨 왼쪽 값 p를 없애면서 가장 오른쪽에 append한다. i,c,t,u,r,e,p의 형태 각 원소를 합한 save값이 원래 값인 picture까지 한바퀴를 다 돌면 break save값이 word 리스트 안 다른 원소들에 속.. 2023. 4. 19.
[Python3] 백준 1251번 단어 나누기 사용 언어 - Python3 문제 - 단어 나누기 1251번: 단어 나누기 알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다 www.acmicpc.net 정답 list 인덱싱 구현 (정답 맞춘 여부 X) word = list(input()) answer = [] tmp = [] for i in range(1,len(word)+1): for j in range(i+1,len(word)): a = word[:i] b = word[i:j] c = word[j:] a.reverse() b.reverse() c.reverse() tmp.append(a+b+c) for a i.. 2023. 4. 18.