알고리즘 공부/프로그래머스 102

(Python)프로그래머스 코딩테스트 연습 - 월간 코드 챌린지 시즌2 - 음양 더하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/76501?language=python3 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 2. 나의 풀이 def solution(absolutes, signs): answer = 0 for i, absolute in enumerate(absolutes): if signs[i]: answer += absolute else: answer -= absolute return answer 3. ..

(Python)프로그래머스 코딩테스트 연습 - 월간 코드 챌린지 시즌3 - 없는 숫자 더하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/86051?language=python3 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 2. 나의 풀이 def solution(numbers): answer = 45 for number in numbers: answer -= number return answer 3. 다른 사람 풀이 def solution(numbers): return 45 - sum(numb..

(Python)프로그래머스 코딩테스트 연습 - 2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 2. 나의 풀이 def solution(board, moves): answer = 0 basket = [] for move in moves: move -= 1 for board_indi in board: if board_indi[move] == 0: continue else: basket.append(board_indi[move]) board_in..

(Python)프로그래머스 코딩테스트 연습 - 2020 카카오 인턴십 - 키패드 누르기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/67256?language=python3 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 2. 나의 풀이 def solution(numbers, hand): answer = '' left = '10' right = '12' for number in numbers: # print('number :', ..

(Python)프로그래머스 코딩테스트 연습 - 2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/81301?language=python3 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 2. 나의 풀이 def solution(s): answer = 0 s = s.replace('one', '1') s = s.replace('two', '2') s = s.replace('three', '3') s = s.replace('four', '4') s = s.replace('five', '5') s =..

(Java)프로그래머스 코딩테스트 연습 - 그래프 - 가장 먼 노드

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/49189?language=java 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 2. 나의 풀이 import java.util.*; class Solution { static boolean [][] connect; static boolean [] checked; public int solution(int n, int[][] edge) { int ans = 0; connect = new boolean[n][n]; checked = new boolean[n]; for(int i ..

(Java)프로그래머스 코딩테스트 연습 - 깊이/너비 우선 탐색(DFS/BFS) - 단어 변환

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/43163#qna 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 2. 나의 풀이 class Solution { public int solution(String begin, String target, String[] words) { //words의 최대 길이로 answer 선언 int answer = words.length + 1; //words배열을 순환하는 반복문..

(Java)프로그래머스 코딩테스트 연습 - 탐욕법(Greedy) - 섬 연결하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42861#qna 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 2. 나의 풀이 import java.util.*; class Solution { public int solution(int n, int[][] costs) { int answer = 0; boolean [] check = new boolean [costs.length]; ArrayList visited = new ArrayList(); for(int i = 1; i < n; i = i + 1) { int cost = -1; //System...

(Java)프로그래머스 코딩테스트 연습 - 월간 코드 챌린지 시즌1 - 풍선 터트리기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/68646#qna 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 2. 나의 풀이 class Solution { public int solution(int[] a) { //System.out.println("a : " + Arrays.toString(a)); //System.out.println(""); int answer = 2; int [] min = new int[2]; min[0] = a[0]; min[1] = a[a.length - 1]; int left = 1; int right = a.length - 2..

(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 2 * n 타일링

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12900#qna 코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr 2. 나의 풀이 //연습문제 - 2 * n 타일링 public int solution100(int n) { int ans = 0; int i = 3; int n_1 = 1; int n_2 = 2; while(i < n) { ans = (n_1 + n_2) % 1000000007; n_1 = n_2; n_2 = ans; i++; } ..