본문 바로가기

알고리즘 자료구조

[백준] 2167 2차원 배열의 합 2167번: 2차원 배열의 합 (acmicpc.net) 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 🖊️문제 2차원 배열이 주어졌을 때 (i, j) 위치부터 (x, y) 위치까지에 저장되어 있는 수들의 합을 구하는 프로그램을 작성하시오. 배열의 (i, j) 위치는 i행 j열을 나타낸다. 🖊️문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { //배열입력 Scanne.. 더보기
[백준] 5613 계산기 프로그램 5613번: 계산기 프로그램 (acmicpc.net) 5613번: 계산기 프로그램 입력의 각 줄에는 숫자와 +, -, *, /, =중 하나가 교대로 주어진다. 첫 번째 줄은 수이다. 연산자의 우선 순위는 생각하지 않으며, 입력 순서대로 계산을 하고, =가 주어지면, 그때까지의 결과를 출 www.acmicpc.net 🖊️문제 덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드시오. 🖊️문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int result = sc.nextInt(); int num = 0; whil.. 더보기
[프로그래머스] 배열 회전시키기 🖊️문제 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direcion방향으로 한 칸씩 회전시킨 배열을 return하도록 solution함수를 완성해주세요. 🖊️문제 풀이 class Solution { public int[] solution(int[] numbers, String direction) { int[] answer = new int[numbers.length]; if(direction.equals("right")){ for (int i = 0; i < numbers.length; i++) { if(i==numbers.length-1){ answer[0] = numbers[i]; }else{ answer[i+1] = numbers.. 더보기
[프로그래머스] 한 번만 등장한 문자 🖊️문제 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return하도록 solution함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 🖊️문제풀이 import java.util.*; class Solution { public String solution(String s) { String answer = ""; char[] input = s.toCharArray(); Hashtable hash = new Hashtable(); for(char c: input) { hash.put(c, hash.getOrDefault(c, 0)+1); } List list = new ArrayList(hash.keySet()); .. 더보기
[프로그래머스] 홀수vs짝수 🖊️문제 정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때, 홀수번째 원소들의 합과 짝수 번째 원소드르이 합 중 큰 값을 return하도록 solution함수를 완성해주세요. 두 값이 같을 경우 그 값을 return합니다. 🖊️문제 풀이 class Solution { public int solution(int[] num_list) {int oddSum = 0; int evenSum = 0; for (int i = 0; i evenSum? oddSum : evenSum; } } .. 더보기
[프로그래머스] 2의 영역 🖊️문제 정수 배열 arr가 주어집니다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 return하는 solution함수를 완성해 주세요. 단, arr에 2가 없는 경우 [-1]을 return합니다. 🖊️문제 풀이 import java.util.*; class Solution { public int[] solution(int[] arr) { int[] answer = {}; ArrayList list = new ArrayList(); int startIdx = -1; int endIdx = -1; for (int i = 0; i < arr.length; i++) { if(arr[i] == 2){ startIdx = i; break; } } for (int i = 0; i < arr.leng.. 더보기
[프로그래머스] 첫 번째로 나오는 음수 🖊️문제 정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 return하도록 solution함수를 완정해주세요. 음수가 없다면 -1을 return합니다. 🖊️문제 풀이 class Solution { public int solution(int[] num_list) { int answer = -1; if(num_list.length 100 || num_list == null){ return 0; } for (int i = 0; i < num_list.length; i++) { if (num_list[i] 더보기
[프로그래머스] 리스트 자르기 🖊️문제 정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때 n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다. n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지 n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지 n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지 n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c간격으로 올바르게 슬라이싱한 리스트를 return하도록 solution함수를 완성해주세요. 🖊️문제 풀이 import java.util.*; class Solution { public int[] sol.. 더보기

728x90