Algorithm
-
https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1743, 음식물 피하기 📌 [ 난이도 : 실버 1 ] 이번 문제는 DFS & BFS 를 사용해서 풀이했다. 두 방식에 시간과 메모리 차이는 크게 없는 거 같지만 가장 중요한 개념이라고 생각하기에 항상 두 방식으로 풀어보길 권장한다. 📚 Process 초기화 및 선언 : 항상 배열을 만들어 줄 때 x, y에 대한 구분이 헷갈리는데 명확하게 하지 않으면 in..
(JAVA) [BOJ]백준 1743번, 음식물 피하기https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net 1743, 음식물 피하기 📌 [ 난이도 : 실버 1 ] 이번 문제는 DFS & BFS 를 사용해서 풀이했다. 두 방식에 시간과 메모리 차이는 크게 없는 거 같지만 가장 중요한 개념이라고 생각하기에 항상 두 방식으로 풀어보길 권장한다. 📚 Process 초기화 및 선언 : 항상 배열을 만들어 줄 때 x, y에 대한 구분이 헷갈리는데 명확하게 하지 않으면 in..
2023.08.14 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12973, 짝지어 제거하기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 Stack 을 활용하여 풀이를 진행했다. 📚 Process 초기화 및 선언 구현 : 문자가 같은 문자를 제거하는 방법을 계속 진행해야 한다. 이것을 문자를 하나씩 넣는데 넣기 전에 이전에 들어있는 것을 하나씩 확인하면서 같으면 제거하고 아니면 add 해주는 방식의 stack 을 활용해서 풀이하면 된다. 1. stack 이 비어있으면 넣어준다. 2. 비어있지 않다면 직전에 들어간 것과 비교한다. 2-1. 넣어야 하는 문자와 직전에 들어..
(JAVA) [프로그래머스] 12973번, 짝지어 제거하기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12973, 짝지어 제거하기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 Stack 을 활용하여 풀이를 진행했다. 📚 Process 초기화 및 선언 구현 : 문자가 같은 문자를 제거하는 방법을 계속 진행해야 한다. 이것을 문자를 하나씩 넣는데 넣기 전에 이전에 들어있는 것을 하나씩 확인하면서 같으면 제거하고 아니면 add 해주는 방식의 stack 을 활용해서 풀이하면 된다. 1. stack 이 비어있으면 넣어준다. 2. 비어있지 않다면 직전에 들어간 것과 비교한다. 2-1. 넣어야 하는 문자와 직전에 들어..
2023.08.10 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12951, JadenCase문자열 만들기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 문자열 관련 문제이다. 📚 Process 초기화 및 선언 구현 : 공백이 연달아 나올 수 있다. 그렇기 때문에 공백이 나오는 순간마다 flag를 체크해준다. 그 flag 가 확인되면 대문자 처리를 해주고 나머지는 소문자로 처리해주면 된다. 숫자는 toUpperCase를 사용해도 무방하기 때문에 이렇게 처리하였다. ✅ 전체 코드 : 다른 분의 풀이도 참조했는데 너무나도 간단하게 푼 코드가 있어 첨부한다. import ja..
(JAVA) [프로그래머스] 12951, JadenCase 문자열 만들기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 12951, JadenCase문자열 만들기 📌 [ 난이도 : LEVEL 2 ] 이번 문제는 문자열 관련 문제이다. 📚 Process 초기화 및 선언 구현 : 공백이 연달아 나올 수 있다. 그렇기 때문에 공백이 나오는 순간마다 flag를 체크해준다. 그 flag 가 확인되면 대문자 처리를 해주고 나머지는 소문자로 처리해주면 된다. 숫자는 toUpperCase를 사용해도 무방하기 때문에 이렇게 처리하였다. ✅ 전체 코드 : 다른 분의 풀이도 참조했는데 너무나도 간단하게 푼 코드가 있어 첨부한다. import ja..
2023.08.10 -
https://www.acmicpc.net/problem/12919 12919, A 와 B 2 📌 [ 난이도 : 골드 5 ] 이번 문제는 문자열 문제이다 골드 문제 위주로 풀이해서 고득점을 노려보자고 마음먹고 푼 문제이기는 하지만 잘 푼 풀이인지는 잘 모르겠다. 더 효율적인 풀이를 위해 연구해봐야 할 것 같다. 📚 Process 초기화 및 선언 : 변화하기전 before, 변화한 후인 after 로 String 을 받아준다. public static void input() throws IOException { before = br.readLine(); after = br.readLine(); } 재귀호출 : 재귀로 문제를 풀이해보았다. 접근은 가공이 된 문자열에서 2가지 조건을 반대로 하며 before와..
(JAVA) [BOJ]백준 12919번, A 와 B 2https://www.acmicpc.net/problem/12919 12919, A 와 B 2 📌 [ 난이도 : 골드 5 ] 이번 문제는 문자열 문제이다 골드 문제 위주로 풀이해서 고득점을 노려보자고 마음먹고 푼 문제이기는 하지만 잘 푼 풀이인지는 잘 모르겠다. 더 효율적인 풀이를 위해 연구해봐야 할 것 같다. 📚 Process 초기화 및 선언 : 변화하기전 before, 변화한 후인 after 로 String 을 받아준다. public static void input() throws IOException { before = br.readLine(); after = br.readLine(); } 재귀호출 : 재귀로 문제를 풀이해보았다. 접근은 가공이 된 문자열에서 2가지 조건을 반대로 하며 before와..
2023.08.07 -
https://softeer.ai/practice/6270 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai GBC 📌 [ 난이도 : LEVEL 3 ] 이번 문제는 처음에는 접근이 어려웠지만 간단한 for 문을 통해 해결했다. 📚 Process 초기화 및 선언 : 각 구간의 길이 및 해당 구간에서의 제한 속도와 테스트 구간의 길이와 속도를 입력받는다. 해당 구간과 제한 속도를 area 라는 변수에 담아주고, 테스트 구간과 길이를 비교하는 로직이다. 구간 비교 : 여기서 주의해야 할 점은 시작점과 끝점이다. 입력예제 1을 예시로 들어보겠다. [50, 50] [40, 40] [10, 30] 이 주어졌을 때 해당 구간에 대해서 1-50 : 제한속도 50 51 - 90 : 제한속도 40 91..
(JAVA)[softeer] GBChttps://softeer.ai/practice/6270 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai GBC 📌 [ 난이도 : LEVEL 3 ] 이번 문제는 처음에는 접근이 어려웠지만 간단한 for 문을 통해 해결했다. 📚 Process 초기화 및 선언 : 각 구간의 길이 및 해당 구간에서의 제한 속도와 테스트 구간의 길이와 속도를 입력받는다. 해당 구간과 제한 속도를 area 라는 변수에 담아주고, 테스트 구간과 길이를 비교하는 로직이다. 구간 비교 : 여기서 주의해야 할 점은 시작점과 끝점이다. 입력예제 1을 예시로 들어보겠다. [50, 50] [40, 40] [10, 30] 이 주어졌을 때 해당 구간에 대해서 1-50 : 제한속도 50 51 - 90 : 제한속도 40 91..
2023.08.05 -
Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 소프티어, 금고털이 🔥 난이도 : LEVEL 2 이번 문제는 입력받을 금고를 표기할 Class 사용한 Greedy 알고리즘을 사용하여 풀어봤다. 📚 프로세스 주의할 점 몇가지에 대해 설명한다. 초기화 및 선언 무게와 금속의 종류를 입력받고 그 값을 Metal 이라는 class를 생성해준다. 이는 추후에 정렬을 하기 위해 작성한 코드이다. 정렬 가격이 같다면 무게 오름차순, 이외에는 가격 내림차순으로 정렬해준다. 이는 가장 비싼 가격을 출력하기 위함이다. 정리를 해보면 한정된 가방 무게에 가장 가치가 비싼 금속으로 채워넣어야 한다. 그렇기 때문에 가격이 비싼 것부터 가방을 가득 채울 때까지 넣어준다는 의미로 로직을 구성하였..
(JAVA)[softeer] 금고털이Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 소프티어, 금고털이 🔥 난이도 : LEVEL 2 이번 문제는 입력받을 금고를 표기할 Class 사용한 Greedy 알고리즘을 사용하여 풀어봤다. 📚 프로세스 주의할 점 몇가지에 대해 설명한다. 초기화 및 선언 무게와 금속의 종류를 입력받고 그 값을 Metal 이라는 class를 생성해준다. 이는 추후에 정렬을 하기 위해 작성한 코드이다. 정렬 가격이 같다면 무게 오름차순, 이외에는 가격 내림차순으로 정렬해준다. 이는 가장 비싼 가격을 출력하기 위함이다. 정리를 해보면 한정된 가방 무게에 가장 가치가 비싼 금속으로 채워넣어야 한다. 그렇기 때문에 가격이 비싼 것부터 가방을 가득 채울 때까지 넣어준다는 의미로 로직을 구성하였..
2023.08.02 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 64061, 크레인 인형 뽑기 📌 [ 난이도 : LEVEL 1 ] 이번 문제는 Stack 과 ArrayList 를 사용해서 풀이했다. List 안에 Stack 을 사용하여 풀면 더 쉬울 것 같은데 그러한 방법이 있는지 모르겠어서 기존의 형시대로 풀이를 진행했다. - 📚 Process 초기화 및 선언 : 뽑을 인형들을 넣을 backet(stack) 과 주어진 보드 데이터들을 담을 doll(ArrayList[]), 많이 사용되는 보드의 사이즈와답을 도출할 ans 라는 변수를 선언한다. 그리고 마지막 board 에..
(JAVA) [프로그래머스] 64061번, 2019 카카오 개발자 겨울 인턴십 > 크레인 인형 뽑기프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 64061, 크레인 인형 뽑기 📌 [ 난이도 : LEVEL 1 ] 이번 문제는 Stack 과 ArrayList 를 사용해서 풀이했다. List 안에 Stack 을 사용하여 풀면 더 쉬울 것 같은데 그러한 방법이 있는지 모르겠어서 기존의 형시대로 풀이를 진행했다. - 📚 Process 초기화 및 선언 : 뽑을 인형들을 넣을 backet(stack) 과 주어진 보드 데이터들을 담을 doll(ArrayList[]), 많이 사용되는 보드의 사이즈와답을 도출할 ans 라는 변수를 선언한다. 그리고 마지막 board 에..
2023.07.28 -
https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 11659, 구간 합 구하기 4 [ 난이도 : 실버 3 ] 이번 문제는 누적합을 사용해서 풀어보겠다. N과 M의 범위가 1 - 100,000 이다. 이번 문제에선 i, j 를 for문을 통해서 구하게 되면 시간 초과가 발생할 수 있기 때문에 누적합을 통해 풀어보겠다. 예를 들어 i, j 가 각각 2 와 3으로 주어지고 arr이라는 int 배열에 누적합을 구한다는 가정을 해보..
(JAVA) [BOJ]백준 11659번, 구간 합 구하기 4https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 11659, 구간 합 구하기 4 [ 난이도 : 실버 3 ] 이번 문제는 누적합을 사용해서 풀어보겠다. N과 M의 범위가 1 - 100,000 이다. 이번 문제에선 i, j 를 for문을 통해서 구하게 되면 시간 초과가 발생할 수 있기 때문에 누적합을 통해 풀어보겠다. 예를 들어 i, j 가 각각 2 와 3으로 주어지고 arr이라는 int 배열에 누적합을 구한다는 가정을 해보..
2023.06.14