본문 바로가기

Algorithm/구현92

[프로그래머스 lv1] 가장 가까운 같은 글자 사용 언어 - Python3 문제 - 가장 가까운 같은 글자 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 리스트 거꾸로해서 index 찾기 (정답 맞춘 여부 O) list_a 라는 빈 리스트를 생성하여, list_a에 있다면 원소값을 찾아준다. 리스트 순서 거꾸로 [::-1] 해서 index 값을 찾으면 가장 가까운 같은 글자의 위치를 찾을 수 있다. 원소가 없다면 -1을 추가해준다. 한 글자를 처리한 후에 list_a에 append해준다. def solution(s): answer = [] list_a = [] for i in s: if i in.. 2023. 4. 25.
[프로그래머스 lv1] 둘만의 암호 사용 언어 - Python3 문제 - 둘만의 암호 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 리스트 원소값 replace & index 찾기 (정답 맞춘 여부 X) 리스트명.replace(바꾸려는 값, 바꿀 값) 리스트명.index(인덱스 찾으려는 값) 전체리스트 개수를 len(alpha) 값으로 나눈 몫을 구하면, len(alpha)가 z 값을 넘어서도 a부터 다시 시작할 수 있다. 문자열을 더할 때는 + 로도 가능하다 def solution(s, skip, index): answer = '' alpha = 'abcdefghijklmnopqrs.. 2023. 4. 25.
[프로그래머스 lv1] 바탕화면 정리 사용 언어 - Python3 문제 - 바탕화면 정리 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 for문 (정답 맞춘 여부 O) 1. #의 위치를 x,y 리스트 에 저장한다. 2. (세로좌표, 가로좌표)로 표현해 출력한다. def solution(wallpaper): x, y = [], [] for i in range(len(wallpaper)): for j in range(len(wallpaper[i])): if wallpaper[i][j] == "#": x.append(j) y.append(i) return [min(y),min(x),max(y.. 2023. 4. 24.
[프로그래머스 lv1] 공원 산책 사용 언어 - Python3 문제 - 공원 산책 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 복잡한 for문 (정답 맞춘 여부 X) 1. 시작지점 S를 찾아 x,y좌표에 저장한다. 2. 현재위치를 xx, yy에 저장한다. 각 방향으로 xx, yy를 한 칸씩 이동한다. 0부터 max_x,max_y 사이에 좌표가 있어야 하고, 이동하는 위치에 장애물 X가 없는 경우에만 한칸씩 이동한다. 전부 이동했다면, 최종 xx,yy 위치를 x,y에 저장해준다. 4. [세로방향좌표, 가로방향좌표] = [y,x] 출력 def solution(park, routes):.. 2023. 4. 24.
[프로그래머스 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.
[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] 백준 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.