본문 바로가기

알고리즘219

[Python] 두 개 뽑아서 더하기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 풀이 파이썬의 permutation을 이용해서 모든 경우의 수를 구한 후 중복을 처리하기위해 set을 사용하여 해결했습니다. 이때, 파이썬의 set은 자동으로 정렬되지 않는 것을 주의해야 합니다. 코드 def solution(numbers): answer = set() select_num_list = list(permutations(list(numbers), 2)) for select_nums in select_n.. 2021. 1. 30.
[Java] SWEA 5215번 햄버거 다이어트 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 재귀함수를 이용해서 정해진 칼로리가 될 때 까지 모든 조합을 구해서 최대 값을 구하였습니다. 코드 import java.util.Scanner; public class Solution { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int tc = sc.nextInt(); for (int idx = 1; idx 2021. 1. 29.
[Python] 크레인 인형뽑기 게임 코딩테스트 연습 - 크레인 인형뽑기 게임 [[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 풀이 파이썬으로 처음 풀어본 알고리즘 문제라서 이상한 부분이 있을 수도 있습니다! moves에서 값을 받아 해당 열을 조사해서 basket의 맨 뒤의 값 즉, 이전에 넣은 인형이 같다면 넣은 인형과 해당 인형 총 2개이므로 정답에 2를 더해주고 이전에 넣은 인형과 다르다면 basket에 넣어주기만 했습니다. 코드 def solution(board, moves): answer = 0 basket = [] board_len = len(board[0]) for i in moves: for j .. 2021. 1. 28.
[Java] SWEA 6808번 규영이와 인영이의 카드게임 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 C++을 사용했다면 next_permutation()을 사용하고 싶었던 문제였지만, 자바로 문제를 풀기위해서 재귀함수를 통해 permutation을 구현하였습니다. 또한, 숫자를 뽑을때마다 규영이의 카드와 비교를 해주어 점수를 구하고 9장의 카드를 전부 뽑으면 승, 패를 결정하게 하여 해결하였습니다. 코드 import java.util.Scanner; public class Solution { public static boolean[] number; public static int[] kCard = new int[9]; public static int win.. 2021. 1. 27.
[Java] SWEA 8104번 조 만들기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 풀이 배열에 저장해서 풀기위해 직접 손으로 배열을 그려가며 하던 중! 우연히 규칙을 발견하고 이 규칙으로 풀릴까해서 풀어봤더니 풀려서 당황스러웠던 문제였습니다. 우선, 첫 번째 조를 구하는 방법은 N = 4, K = 6인 경우 1조 2조 3조 4조 5조 6조 조원 1 1 2 3 4 5 6 조원 2 12 11 10 9 8 7 조원 3 13 12 11 10 9 8 조원 4 24 25 26 27 28 29 위 표에서 1조의 조원을 잘 보면 첫 번째와 세 번째 조원은 (0 * 6) + 1, (2 * 6) + 1이고 두 번째와 네 번째 조원은 2 * 6, 4 * 6인 것을.. 2021. 1. 26.
[C++] 백준 14889번 : 스타트와 링크 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 백준문제이미지 풀이 N은 짝수이므로 항상 두팀으로 나누는게 보장된다. 따라서, N / 2는 1로 나머지 N / 2는 0으로 만들어 1팀과 0팀으로 나누고 sort를 해준뒤 순열을 사용하면 된다. 문제점 첫번째 팀은 첫번째 팀과 두번째 팀은 두번째 팀끼리 더해야 함을 주의 코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); co.. 2020. 5. 30.