본문 바로가기

Problem Solving27

[ 프로그래머스 ] 주식 가격 문제 링크 programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 풀이 스택/ 큐로 분류되어 있는 문제인데 반복문 두개를 써서 간단하게 풀 수 있는 문제이다. 간단한 문제이기 때문에 설명은 생략하고 코드를 보면서 이해하면 될 것 같다. 소스 코드 class Solution { public int[] solution(int[] prices) { int[] answer = new int .. 2021. 3. 30.
[ 프로그래머스 ] N개의 최소공배수 문제 링크 programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 문제 풀이 최대공약수를 구하는 유클리드 호제법만 알고 있다면 어렵지 않게 풀수 있는 문제다. 유클리드 호제법이란? 두 수 A,B가 있을때 그 중 큰수를 A로 두고 작은수를 B로 두자. A % B를 했을때 나머지가 0 이된다면 B가 최대공약수이고 그게 아니라면 B를 A위치로 두고, A%B를 B위치로 두고 나머지가 될 때까지 .. 2021. 3. 29.
[ 프로그래머스] 가장 큰 수 - Java 문제 링크 programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제 풀이 정렬하는 문제였습니다. 처음에는 두수를 앞자리부터 한자리씩 비교해서 정렬하였으나 이 방법으로는 통과하지 못하는 케이스가 있었습니다. 예)[212 , 21] 정답: 21221 다시 생각 해 본결과, 아예 두 수를 이어 붙여서 비교하면 둘 중에 어느 수가 먼저 이어붙였을 때 큰 수인지 알 수 있.. 2021. 3. 10.
[ 백준 19236] 청소년 상어 - Java 문제 링크 http://boj.kr/19236 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 문제 풀이 삼성 코딩테스트 기출문제입니다. 그 전에 나왔던 아기상어(http://boj.kr/16236)의 시리즈로 내놨나 봐요 ㅎㅎ 아기상어는 BFS로 푸는 문제였는데 요 청소년 상어는 문제에서 주어지는대로 이동시키는 시뮬레이션 문제로 보입니다! 어렵지는 않았지만 문제를 읽다보니 물고기가 없는 칸으로는 이동할 수 없다. 이부분이 있는데 이 부분을 잘 못 이해해서 물고기 없는칸 이후 방향으로는 탐색하.. 2021. 2. 25.
[ 백준 14503 ] 로봇 청소기 - Java 문제 링크 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 풀이 문제 설명에 맞게 시물레이션 해서 풀면 되는 문제입니다. 알고리즘 관련 배경지식보다는 구현력이 중요한 문제라는 생각이 듭니다. 소스 코드 import java.util.*; public class Main { static int [] dx = { -1 , 0 , 1, 0}; static int [] dy = { 0 , 1 , 0 , -1}; static int N; stat.. 2021. 2. 5.
[ 백준 1520 ] 내리막 길 - Java 문제 링크 https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 문제 풀이 dfs+dp 문제이다. 처음에는 bfs로 그냥 풀었다가 메모리 초과가 나버렸고, 그냥 dfs로 했다가 시간 초과가 나버렸다. dfs로 쭉 탐색하다가 오른쪽 끝 지점에 도달했을때 1을 리턴하고, 만약에 해당 지점을 탐색한 적이 있을 때 해당 값을 리턴한다. 소스 코드 import java.util.Arrays; import java.util.Scanner; public cla.. 2021. 1. 4.