ALGORITHM/프로그래머스 | 백준 | 삼성 | 카카오 87

[백준] 14889번 스타트와 링크

www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 : 스타트 팀과 링크팀의 능력치의 차이의 최솟값 출력 문제 풀이: N명의 사람들을 스타트 팀과 링크 팀으로 나누면서, 각 팀 능력치 합의 차이를 최소로 구해야한다. 두 팀으로 나누기 위해서 N/2만큼 조합으로 뽑는다. team[] : S(능력치) 입력이 들어있다. mask[] : 스타트팀은 true, 링크팀은 false startsum, linksum : 각 팀 능력치 합 comb() : N/2 명을 뽑기 위한 조합 함수..

[SWEA] 5658. [모의 SW 역량테스트] 보물상자 비밀번호

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 : box 배열에 글자를 하나씩 넣어주고, 시계방향으로 돌리기 위해 for문을 사용합니다. 회전 한 번 할 때마다 list에 넣어줍니다. 각 회전이 종료된 후 list를 정렬시켜 K번째 숫자를 출력합니다. 주의할 점 : N이 4로 나누어 떨어지지 않을경우, 변의 길이를 자를 때는 if(i+3 10진수로 변환 if(list.contains(change))continue; //중복제거 list.add(ch..

[백준] 14891번 톱니바퀴

www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 문제 풀이 : 톱니 바퀴를 k번만큼 회전시키는데 1은 시계방향이고, -1은 반시계 방향이다. n변수에 회전시킬 톱니바퀴 번호를 입력받는다. dir 배열을 주어 회전방향을 결정해준다. wheel 배열은 톱니바퀴의 상태 배열이다. rotat 함수는 방향을 결정해주는 함수로, 서로 맞닿은 톱니의 극이 다른 경우만 1과 -1을 넣어준다. 이후 회전방향대로 알맞는 함수를 호출한다. right 함수는 시계방향으로 돌아..

[백준] 17144번 미세먼지 안녕!

https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 문제 풀이 : 1초 동안 미세먼지를 확산하고 공기 청정기를 작동시켜야합니다. spread는 미세먼지를 확산하는 함수입니다. 2차원 배열의 모든 미세먼지를 사방으로 다 퍼뜨립니다. 이때 겹치는 부분이 있으면 미세먼지 수를 더해줘야하기 때문에 map에는 처음 미세먼지 2차원 배열로 해주고 arr 에는 변화되는 미세먼지 배열로 사용합니다. 확산되는 양은 Ar,c/5 이고 남은 미세먼지의 양은 Ar,c..

[백준] 1987번 알파벳

https://www.acmicpc.net/problem/1987 1987번: 알파벳 문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 www.acmicpc.net 문제 : 1행 1열의 말이 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다..

[백준] 2668번 숫자고르기

https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절� www.acmicpc.net import java.awt.geom.Area; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main{ static int N,remember = 0,count = 0,answer = Integer.MIN_VAL..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도

https://programmers.co.kr/learn/courses/30/lessons/17681 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 문제 설명 : arr1과 arr2 배열의 값을 2진수로 각각 변환해주고, OR 연산을 해줍니다. 1001 = 9 일 경우 n자리만큼 빈 자리에는 0을 채워줘야하기 때문에 format 함수로 공백을 넣어줍니다. 1일 경우 #으로 바꾸고, 0일 경우 공백으로 출력해줍니다. class Solution { public static String[] solution..

[프로그래머스] 2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임

https://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 문제 : 게임 화면의 격자의 상태가 담긴 2차원 배열 board와 인형을 집기 위해 크레인을 작동시킨 위치가 담긴 배열 moves가 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려져 사라진 인형의 개수를 return 하도록 solution 함수를 완성해주세요. 문제 풀이 : Stack을 활용해서 풀었습니다. moves 배열만큼 돌면서 해당하는 숫자 번호를 board 인덱스로 사용..

[백준] 1764번 듣보잡

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. �� www.acmicpc.net 문제 : 듣도 보도 못한 명단을 구하기 문제 풀이: 듣지 못한 명단을 HashSet에 넣어줍니다. 보지 못한 명단이 HashSet에 포함되어 있을 경우 ArrayList에 넣어주고 count 변수를 세줍니다. list를 정렬하여 출력해줍니다. 몰랐던 점: 처음에 듣지 못한 명단을 ArrayList에 넣어줬는데 시간초과가 났습니다. ArrayList는 순서도 같이 관리해야하기 때문에 시간이 ..