백준 14503. 로봇 청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 단순한 구현 문제였는데 문제 이해부터 풀이까지 시간이 걸렸던 문제... 조건을 잘 따라 구현하면 별다른 문제는 없는 거 같다. 반복문을 계속 돌면서 4방향 중에 청소를 할 곳이 있거나 없을 때의 로봇 청소기의 동작을 각 조건문 안에 작성을 하고 뒤로 후진해야할 때 그곳이 벽이라면 반복문을 탈출해서 청소한 곳을 카운트하..
백준 19539. 사과나무 https://www.acmicpc.net/problem/19539 19539번: 사과나무 첫 번째 줄에 모든 나무가 갊자가 바라는 높이가 되도록 물뿌리개를 통해 만들 수 있으면 “YES”를, 아니면 “NO”를 따옴표를 제외하고 출력한다. www.acmicpc.net 풀이 전체 나무 길이의 합이 3으로 나누어 떨어지지 않으면 물뿌리개를 통해 만들 수가 없다. 물뿌리개를 동시에 뿌리기 때문에 2씩 증가하는 물뿌리개를 5번 뿌리면 1씩 증가하는 물뿌리개도 5번 뿌려야 한다. 2를 사용한 총 횟수를 cnt에 저장하고 총 합을 sum 이라고 했을때 cnt >= sum/3 일 경우 만들 수 있다. 전체 코드 import java.io.BufferedReader; import java.i..
백준 15686. 치킨 배달 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 풀이 과정 1. 집과 치킨집의 좌표를 각각 houseList와 chickenList에 저장 2. 치킨집 M개를 뽑은 다음 이중 포문을 이용해서 치킨 거리의 최소합을 계산 3. 탐색을 시작하는 지점이 chickenList의 사이즈를 초과하면 탐색을 종료 전체 코드 import java.util.*; public class Main { static i..
백준 1783. 병든 나이트 https://www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 너무 오랜만에 문제를 풀려고 하니 생각한대로 코드 작성하는 게 쉽지가 않았다.. 꾸준히 풀었어야했는데.. BFS로 접근을 생각했는데 블로그를 참고하니 입력값이 너무 커서 BFS로 접근하면 시간초과가 난다고 한다. 문제를 꾸준히 풀자! 전체 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public c..
https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 import java.util.Arrays; class Solution { public String solution(String s) { char[] arr = s.toCharArray(); Arrays.sort(arr); return new StringBuilder(new String(arr)).reverse().toString(); } }
https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 class Solution { public int solution(int[] a, int[] b) { int answer = 0; for (int i = 0; i < a.length; i++) { answer += a[i] * b[i]; } return answer; } }
https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 class Solution { public String solution(int n) { StringBuilder answer = new StringBuilder(); for (int i = 1; i < n + 1; i++) { if (i % 2 != 0) answer.append("수"); else answer.append("박"); } return answer.toString(); }..
https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 class Solution { public String solution(String s) { int num = s.length() / 2; if (s.length() % 2 == 0) s = s.substring(num - 1, num + 1); else s = String.valueOf(s.charAt(num)); return s; } }
https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 import java.util.ArrayList; import java.util.List; class Solution { public int solution(int[] numbers) { int answer = 0; List list = new ArrayList(); for (int n : numbers) list.add(n); for (int i = 0; i < 10; i++) { i..
https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public int[] solution(int[] arr) { if (arr.length == 1) return new int[]{-1}; List list = new ArrayList(); int minA = Intege..