알고리즘 문제 풀이 56

[프로그래머스]쿼드압축 후 개수 세기

programmers.co.kr/learn/courses/30/lessons/68936 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr DFS를 이용해서 제일 작은 부분(길이가 1이 될 때)까지 쪼개가며 들어가야한다. 사각형을 절반씩 나누어 4개의 칸으로 만들면 시작점이 (0,0) (0, 0 + length/2), (0 +..

[프로그래머스]불량사용자

programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 나의 풀이 1. 먼저 불량사용자에 해당하는 사용자를 찾아 arrayList bannedList 형태로 만든다. 2. 불량사용자 순열을 만든다. 3. 이전에 만든 bannedList의 순서에 있는지 확인 후 resutlSet에 만든다. 4. 순열이기 때문에 겹칠 수 있어서 resultSet을 이용하여 중복을 제거한다. package com.example.demo; import ..

[프로그래머스][1차] 프렌즈4블록도움말

2018 KAKAO BLIND RECRUITMENT 였던 문제! programmers.co.kr/learn/courses/30/lessons/17679 코딩테스트 연습 - [1차] 프렌즈4블록 프렌즈4블록 블라인드 공채를 통과한 신입 사원 라이언은 신규 게임 개발 업무를 맡게 되었다. 이번에 출시할 게임 제목은 "프렌즈4블록". 같은 모양의 카카오프렌즈 블록이 2×2 형태로 4개가 붙 programmers.co.kr 단순 구현 문제였다. for문 여러 개 써서 해결! 처음 이 문제를 풀 때는 감이 도저히 안 오고 푸는 내내 힘겨웠던 기억이 있는데 지금도 다시 블록을 채우는 과정에서 약간 고생하긴 했지만 수월하게 풀었다. bfs나 dfs이런거 없이 그냥 stack이나 for문 이용해서 풀어도 잘 풀리고 ..

[프로그래머스]체육복

programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 1. boolean array 2개를 만들어서 하나는 유니폼이 있는 학생, 하나는 여유분이 있는 학생으로 나눴다. 2. 먼저 여유분이 있지만 도난당한 학생을 먼저 처리해주고, 이후엔 앞의 번호의 학생에게 우선 빌려주는 방식으로 처리하였다. 풀이 과정에서 11번이 안 되었는데 배열을 쓰는 과정에서 제일 끝 값에 대한 처리가 미흡했던 것으로 추측 된다. 예시의 테스트케이스를 이용하..

[프로그래머스] 크레인 인형뽑기 게임

programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[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 level2라고는 하지만 stack을 이용하고 적절한 분기처리를 해준다면 쉽게 풀 수 있다. 제일 위에 있는 것을 뽑는 과정에서 헤매긴 했다. ㅜㅜ import java.util.*; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; int length = board.length; Stack stack =..

[backjoon]11967번: 불켜기(java)

www.acmicpc.net/problem/11967 11967번: 불켜기 (1, 1)방에 있는 스위치로 (1, 2)방과 (1, 3)방의 불을 켤 수 있다. 그리고 (1, 3)으로 걸어가서 (2, 1)방의 불을 켤 수 있다. (2, 1)방에서는 다시 (2, 2)방의 불을 켤 수 있다. (2, 3)방은 어두워서 갈 수 없으 www.acmicpc.net 문제 풀이 방식은 위상 정렬 풀이 방식과 흡사하다고 생각했다. 간단한 순서가 있어서 ArrayList를 이용하여 값을 넣어준 후, BFS를 이용하여 풀이를 해주었다. 이 문제에서 1. 적절하게 값 넣기 (이 생각이 제일 어려웠음) 2. 문제를 잘 부분을 나눠서 꼼꼼하게 코딩하기 이걸 잘 생각한다면 나름 평이한 문제라고 생각이 든다. import java.io..

반응형