Algorithm 306

N-Queen

📍 문제 설명 https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 💡 접근 이번 문제는 퀸이 어떻게 움직이는지를 몰라서 타 블로그 풀이를 참고했다. 퀸은 상하좌우, 양방향 대각선 한 방향으로 이동할 수 있다. 퀸의 위치를 담는 배열을 하나 선언한다. arr[n] = i -> n열의 i행에 배치시킨다. 그리고 0열부터 시작하여 퀸을 배치할 수 있는 모든 경로에 대해서 재귀 호출한다. 모든 열에 배치시킬 때 마다 경우의 수를 증가 시켜주고 리턴한다. 👩‍💻 코드 im..

Algorithm/baekjoon 2022.02.27

에너지 모으기

📍 문제 설명 https://www.acmicpc.net/problem/16198 16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있 www.acmicpc.net 💡 접근 첫번째와 마지막을 제외하고 재귀를 돌면 되는 문제 현재 리스트의 인덱스를 제거하고 확인해보고 난 뒤에 해당 인덱스에 그 값을 다시 넣어줘야 한다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; publi..

Algorithm/baekjoon 2022.02.24

[2021 데브매칭]행렬 테두리 회전하기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 💡 접근 문제 설명대로 테두리만 회전시키고 회전한 원소 중 최솟값을 기록하면 되는 문제 원소 교체하고 board = clone 처리를 했으나 값만 바뀌는게 아닌 주솟값도 영향을 끼치는거 같아서 그냥 2중 for문 다시돌아서 다시 회전한 원소들을 배열에 넣어주었음 👩‍💻 코드 import java.util.*; class Solut..

타겟넘버

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 💡 접근 다 더하는거 ~ 다 빼는거 중에서 target인 숫자 찾는 DFS 문제 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static char[] c = {'A', 'C', 'F',..

더 맵게

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 💡 접근 우선순위큐 쓰는문제 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static char[] c = {'A', 'C', 'F', 'J', 'M', 'N', 'R', 'T'}; static i..

기능개발

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 💡 접근 큐이용해서 작업량이 100이 넘어갔을 때 그 뒤에 작업들도 완료 가능한지 확인한다. 효율성을 생각하면 큐에 있는 작업이 100이상이 되는 만큼 한번에 증가시키면 될듯.. 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy =..

두 동전

📍 문제 설명 https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net 💡 접근 구슬 탈출이랑 비슷한 문제였는데, 버튼을 10번 이상이 아니라 10번 보다 많이 누르면 -1를 출력해야한다.... 각 동전은 동시에 움직이지만 한 동전이 움직일 수 없는 경우 제자리에 있고 다른 동전은 움직일 수 있으면 움직여야한다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java...

Algorithm/baekjoon 2022.02.23

[2017 카카오코드]단체사진 찍기

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/1835 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 💡 접근 범위가 크지않아 순열 문제로 접근은 했으나 data에 따라서 걸러주는데에서 시간이 꽤나 걸렸다. 처음에는 순열을 뽑을 때 처음에는 인덱스 번호나 프렌즈의 이름을 넣어줬는데, 인덱스 번호나 프렌즈의 이름만으로는 각 프렌즈의 인덱스 번호를 찾기가 비효율적이라 맵을 사용했다. 맵에 프렌즈의 이름과 프렌즈의 번호를 넣어두고 data에 있는 프렌..

[2017 카카오코드]카카오프렌즈 컬러링북

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 💡 접근 BFS에서 각 영역의 갯수와 영역의 크기를 구하는 문제였다. 👩‍💻 코드 import java.util.*; class Solution { static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; public int[] solution(int m, int n, int[][] picture) {..

[2019 카카오 블라인드]오픈채팅방

📍 문제 설명 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 💡 접근 Hashmap을 이용해서 들어오거나 닉네임 변경시 map에 기록해주고 출력해주면 되는 문제 👩‍💻 코드 import java.util.ArrayList; import java.util.HashMap; class Solution { public String[] solution(String[] record) { String[] answer =..