분류 전체보기 319

스택 (Stack)

같은 자료형의 데이터를 쌓아 놓는 자료구조후입 선출 : LIFO Last-In Frist-Out  함수 호출 역시 메모리 스택에 쌓이는 구조이다. func1() // 호출되어 쌓임main() // func1() 호출 스택 추상 데이터 타입create(size) // 최대 크기가 size인 공백 스택을 생성is_full(s) // if (스택의 원소수 == size) return TRUE; 아니라면 return False;is_empty(s) // if(스택의 원소수 == 0) return TRUE; 아니라면 return False;push(s, item) // 스택이 풀 상태이면 에러를 반환, 아니라면 스택 맨 위에 item 추가pop(s) // 스택이 비어있다면 에러 반환, 아니라면 맨 위 원소를 꺼낸..

CS/자료구조 2024.07.01

백준 16234번 : 인구 이동 자바

🧫 문제 분석 ✔️ 출처인구 이동 골드4 📖 문제 랜덤 문제를 돌리다가 나왔다. 그래프 탐색 냄새가 솔솔 난다. BFS를 사용하면 될것 같다.  1. 한 나라의 좌우 상하로 인접한 다른 나라와의 인구차를 M명이라 했을 때 L 해야한다.2. 조건을 만족한 나라들과는 연합을 하여 국경선을 하루 연다. 3. 인구가 이동하며 각 나라의 인구수는 (연합 인구수 / 연합한 나라 개수) 가 되며 소수점은 버린다. 4. 이동후 연합 해지 및 모든 국경선을 닫는다.5. 인구 이동이 없을때까지 반복한다.6. 인구 이동이 며칠동안 발생했는지가 문제이다.  내가 생각한 방법1. 우선 연합가능한 나라들을 찾고, 그 나라에 연합 번호를 매기며 각 인구수를 더해놓는다. 2. 연합은 1개 이상 생길 수 있다. 3. 만약 1번 연..

스킬트리

🧫 문제 분석✔️ 출처스킬트리 level 2📖 문제 skill 매개변수에는 스킬 순서가 담겨있고 skill_trees는 각 스킬트리들이 담겨있다.  여기서 핵심은 스킬순서에 있는 모든 스킬이 다 스킬트리에 있을 필요 없고 스킬 순서만 맞으면 가능한 스킬트리라는 것이다. 🔅 문제 풀이import java.util.*;class Solution { public int solution(String skill, String[] skill_trees) { HashMap map = new HashMap(); int answer = 0, rightSequence = 0; // 맵 초기화 for (int i = 0; i    처음에는 스킬순서에..

programmers/Lv 2 2024.06.28

배열, 구조체, 포인터

✔️ 배열같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조이다.  int arr[5]; // 배열 선언arr[0] = 10; // 0번째 인덱스에 접근하여 값을 바꿈, set 연산int value = arr[0] // 0번째 인덱스에 접근하여 값을 가져옴, get 연산int arr[] = {1, 2, 3, 4}; // 배열 바로 초기화  1차원 배열 :  base(주소값) + n * sizeof(자료형) 2차원 배열 :  base(주소값) + (i * 열의 개수 + j )* sizeof(자료형)       // i : 행,  j : 열 이러한 형식으로 실질적인 배열 인덱스에 접근한다. 응용 : 행렬 (matrix)2차원 배열을 이용하여 ..

CS/자료구조 2024.06.28

행렬의 곱셈

🧫 문제 분석✔️ 출처행렬의 곱셈 level 2📖 문제arr1 x arr2 = arr3axn * nxb = axb인 행렬이 생긴다.🔅 문제 풀이class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; for (int i = 0; i arr1 = [[1,2],[7,8]] arr2 =[[3,5],[4,6]]answer[i][j] = Carr1[i][k] = [1,2]arr2[k][j] = [3][4]i는 answer와 arr1의 행을 가리킨다.j는 arr2의 열을 가리킨다. [1,2] 가 1열..

programmers/Lv 2 2024.06.27

n^2 배열 자르기

🧫 문제 분석✔️ 출처n^2 배열 자르기 level 2📖 문제nxn크기의 2차원 배열을 i행 i열에 i 값을 넣는다.123223333이런식으로그다음 각 행을 모두 이어붙이고 left~right까지만 배열로 반환🔅 문제 풀이class Solution { public int[] solution(int n, long left, long right) { int[] answer = new int[(int)(right-left+1)]; for (int i = 0; i 1차시도때 2차원 배열 만들고 값을 하나씩 넣은다음 그 중에서 left~right 배열을 반환하려 했으나 보면 알겠지만 n의 값이 최대 10^7이고 right - left 는 10^5 미만이다. 2차원..

programmers/Lv 2 2024.06.27

H-Index

🧫 문제 분석✔️ 출처H-Index level 2📖 문제 문제를 잘 못 이해해서 삽질했다.n편 중 h 번 이상 인용된 논문이 h편 이상이고,나머지 논문은 개수에 상관없이 h 번 이하 인용되었다면 h의 최댓값이 H-Index이다. 🔅 문제 풀이import java.util.Arrays;class Solution { public int solution(int[] citations) { Arrays.sort(citations); int max = 0; // i = 논문 인용 횟수 for (int i = 0; i 흠.. 느리다.프로그래머스 좋아요 1등 풀이import java.util.*;class Solution { public ..

programmers/Lv 2 2024.06.27

영어 끝말잇기

🧫 문제 분석✔️ 출처영어 끝말잇기 level 2📖 문제 핵심말 그대로 끝말잇기이며 앞 뒤 문자가 이어지는 지 확인중복 단어 불가🔅 문제 풀이import java.util.*;class Solution { // 1번 부터 순서대로 한사람씩 단어 // 마지막 다음 1번부터 다시시작 // 마지막 문자로 시작하는 단어 // 중복 단어 불가 // 한 글자 불가 public int[] solution(int n, String[] words) { Map map = new HashMap(); char lastWord = words[0].charAt(0); for (int i = 0; i 다른사람풀이를 보며난 왜 M..

programmers/Lv 2 2024.06.27

카펫

🧫 문제 분석✔️ 출처카펫 level 2📖 문제핵심가로 길이 >= 세로길이가로 세로 길이를 구하되 갈색과 노란색의 개수가 맞아야함🔅 문제 풀이좀 이상하게 풀었는데우선 가로 세로를 찾기위해 약수를 구한다. 약수가 가로 세로가 된다.약수를 check 메서드에 넘긴다.check 메서드는가로가 위아래로 2개 있으므로 가로 길이 x 2를 해준 다음 전체 갈색개수에서 빼준다.이를 2로 나누면 사각형에서 양 옆의 개수가 된다.위 예시와 같이 4 / 2 = 2 세로 옆구리가 2다.이 값이 매개변수로 넘어온 약수로 찾은 가로세로중 세로 길이 - 2 한 값보다 작거나 같으면정상적으로 사각형이 성립된다.만약 옆구리가 2 고 약수로 찾은 세로가 1이면 갈색이 1 남는다.. 이러면 아닌 것이다.class Solution ..

programmers/Lv 2 2024.06.27

JadenCase 문자열 만들기

🧫 문제 분석✔️ 출처JadenCase 문자열 만들기 level 2📖 문제핵심공백문자가 연속해서 나올 수 있다.첫 문자는 대문자 그외에는 소문자🔅 문제 풀이처음 시도import java.util.*;class Solution { public String solution(String s) { s += "#"; String[] str = s.split(" "); char temp; String answer = ""; for (int i = 0; i 매우 부끄럽게도 왜 안되지 이해를 못했는데 직접 테스트 케이스를 만들다가 알게되었다...if문에서 temp가 소문자일 때는 대문자로 바꾸고 뒤에 것을 to..

programmers/Lv 2 2024.06.27