[백준/Java] #14503 로봇 청소기
·
알고리즘
로봇 청소기 (14503번) 사용 언어 : Java 레벨 : 골드5 📎 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net ❓ 접근 문제를 보자마자 그동안 풀어본 BFS 문제 풀이들을 약간 바꿔서 사용하면 되겠다 생각했다. 1. 현재 칸이 청소되지 않은 경우, 현재 칸을 청소한다. 2. 현재 칸의 주변 4칸 중 청소되지 않은 빈 칸이 없는 경우 바라보는 방향을 유지한 채로 한 칸 후진할 수 있다면 ..
[백준/Java] #16985 Maaaaaaaze
·
알고리즘
Maaaaaaze (16985번) 사용 언어 : Java 레벨 : 골드2 📎 https://www.acmicpc.net/problem/16985 16985번: Maaaaaaaaaze 첫째 줄부터 25줄에 걸쳐 판이 주어진다. 각 판은 5줄에 걸쳐 주어지며 각 줄에는 5개의 숫자가 빈칸을 사이에 두고 주어진다. 0은 참가자가 들어갈 수 없는 칸, 1은 참가자가 들어갈 수 있는 칸을 www.acmicpc.net ❓ 접근 조건이 굉장히 많고 번거로워서 문제를 완전히 이해하는데 시간이 좀 걸렸다. 1. 백트래킹을 이용해 5개의 판의 쌓을 순서를 정한다. (순열) 2. 백트래킹을 이용해 각 판의 회전방향을 정한다. (중복순열) 3. 순서대로 회전방향에 맞게 판을 쌓는다. 4. 입구와 출구가 1일 경우 BFS를 돌..
[백준/Java] #18808 스티커 붙이기
·
알고리즘
스티커 붙이기 (18808번) 사용 언어 : Java 레벨 : 골드3 📎 https://www.acmicpc.net/problem/18808 18808번: 스티커 붙이기 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연 www.acmicpc.net ❓ 접근 문제가 굉장히 긴데 열심히 읽어보니 문제 자체는 그렇게 어렵지 않았는데 구현을 어떻게 하느냐가 문제였다. 문제를 간단하게 요약하면 1. 왼쪽 위부터 스티커를 붙일 수 있는지 확인한다. 2. 전부 다 확인했을 때 붙이지 못하면 90도 회전한다. 3. 회전 후 1 ~ 2 과정 반복 (270도까지 회전) 4. 전체 스티커가..
[백준/Java] #4179 불! (⚠️시행착오 엄청 많음 주의⚠️)
·
알고리즘
오늘은 피코 스터디에서 BFS 문제들을 풀고 코드리뷰 하는 시간을 가졌다. 다른 BFS 문제는 큰 고난 없이 잘 풀었는데 나의 멘탈을 탈탈 털게 해 준 문제가 있어서 들고 와봤다. [백준 - #4179] 불! 문제 링크 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 개수이다. 다음 입력으로 R줄동안 각각의 미로 행이 주어진다. 각각의 문자 www.acmicpc.net ✔️ 문제 설명 지훈이는 미로에서 일을 한다. 지훈이를 미로에서 탈출하도록 도와주자!미로에서의 지훈이의 위치와 불이 붙은 위치를 감안해서 지훈이가 불에 타기 전에 탈출할 수 있는지의 여부, 그리고 얼마나 빨리 탈출할 수 있는지를 ..
[백준/Java] #2164 카드2
·
알고리즘
[백준 - #2164] 카드2 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net ✔️ 문제 설명 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다...
[알고리즘] 바킹독 실전 알고리즘 0x04 연결리스트 연습문제
·
알고리즘
이 글은 바킹독님의 실전 알고리즘 커리큘럼을 보면서 푼 문제를 작성한 글입니다.링크 : https://blog.encrypted.gg/932 [백준 - #1406] 에디터📎 https://www.acmicpc.net/problem/1406 1406번: 에디터첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수www.acmicpc.net 💡 풀이import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public sta..
[알고리즘] 바킹독 실전 알고리즘 0x03 배열 연습문제
·
알고리즘
이 글은 바킹독님의 실전 알고리즘 커리큘럼을 보면서 푼 문제를 작성한 글입니다. 링크 : https://blog.encrypted.gg/927 [실전 알고리즘] 0x03강 - 배열 안녕하세요, 바킹독입니다.. 저번 단원의 내용인 코드 작성 요령 II는 순한 맛이었는데 오늘건 그냥 단맛입니다. 난이도가 굉장히 낮으니 긴장 푸시고 강의로 들어가겠습니다. 목차는 따로 설명 blog.encrypted.gg [#10808] 알파벳 개수 📎https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 💡 풀이 단순하게 알파벳의 개수가 담긴 배열을 선언해주고 들어온..
[Java] 프로그래머스 코딩테스트 입문 Day 10
·
알고리즘
사용언어 : Java 난이도 : Lv.0 1. 점의 위치 구하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를 매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 담은 정수 배열 dot이 매개변수로 주어집니다. ..
[Java] 프로그래머스 코딩테스트 입문 Day 9
·
알고리즘
사용언어 : Java 난이도 : Lv.0 1. 개미 군단 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 개미 군단이 사냥을 나가려고 합니다. 개미군단은 사냥감의 체력에 딱 맞는 병력을 데리고 나가려고 합니다. 장군개미는 5의 공격력을, 병정개미는 3의 공격력을 일개미는 1의 공격력을 가지고 있습니다. 예를 들어 체력 23의 여치를 사냥하려고 할 때, 일개미 23마리를 데리고 가도 되지만, 장군개미 네 마리와 병정개미 한 마리를 데리고 간다면 더 적은 병력으로 사냥할 수 있습니다. 사냥감의 체력 hp 가 매개변수로 주어질 때, 사냥감의 체력에 딱..
[Java] 프로그래머스 코딩테스트 연습 - 가장 가까운 같은 글자
·
알고리즘
컴퓨터가 고장나는 바람에 한 4일동안 코테를 풀지 못했다.. 밀린 코테들을 호다닥 풀어보려고 한다. 가장 가까운 같은 글자 사용언어 : Java 난이도 : Lv.1 문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다.예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. - b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. - a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. - n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. -..
[Java] 프로그래머스 코딩테스트 입문 Day 8
·
알고리즘
사용언어 : Java난이도 : Lv.0 1. 배열 자르기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1 번째 인덱스부터 num2 번째 인덱스까지 자른 정수배열을 return 하도록 solution 함수를 완성해보세요. 제한사항2 ≤ numbers의 길이 ≤ 300 ≤ numbers의 원소 ≤ 1,0000 ≤num1  입출력 예 입출력 예 설명입출력 예 #1[1, 2, 3, 4, 5]의 1번째 인덱스 2부터 3번째 인덱스 4 까지 자른 [2, 3, 4]..
[Java] 프로그래머스 코딩테스트 연습 - 크기가 같은 부분 문자열
·
알고리즘
현재 풀고있는 코딩테스트 입문용 (난이도 Lv.0)이 좀 쉬운거 같아서 Lv.1 문제들을 하루에 하나씩 추가적으로 풀어보려고 한다! 문제를 보고 난 후 어떻게 풀 것인지 생각하고 구현하는 것을 자세하게 적어보려고 한다. 이 문제를 첫 문제로 한 이유는 Lv.1로 필터 설정했더니 맨 위에 떠있었다. 나온지 얼마 안된 문제였길래 바로 고고씽해버렸다. 크기가 작은 부분 문자열 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사용언어 : Java 난이도 : Lv.1 문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서..