본문 바로가기

전체 글71

[level 2] [카카오 인턴] 수식 최대화 - 67257 (JAVA) 문제 요약 문제는 주어진 수식 문자열에서 연산자의 우선순위를 바꾸어 가능한 모든 조합을 만들고, 그 중에서 각 경우의 절대값이 가장 큰 결과를 반환하는 것이다. 문제 분석 주어진 수식 문자열을 토큰화하여 연산자와 피연산자를 구분한다. 가능한 모든 연산자 우선순위 조합을 구한다. 각 조합에 대해 주어진 수식을 계산하고, 절대값이 가장 큰 결과를 구한다 코드 import java.util.*; class Solution { static long max; static String[] std = {"+", "-", "*"}; public long solution(String expression) { max = 0; // 특정 구분자를 기반으로 문자열 나누기 StringTokenizer st = new Strin.. 2023. 5. 6.
[level 2] 카펫 - 42842 (java) 문제 요약 Leo가 카펫을 사러 갔다가, 중앙에 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양의 카펫을 봤습니다. Leo는 노란색과 갈색 격자의 개수를 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. 갈색 격자의 수 brown과 노란색 격자의 수 yellow가 주어졌을 때, 카펫의 가로, 세로 크기를 순서대로 배열에 담아 반환하는 solution 함수를 작성해 주세요. 문제 분석 노란색 격자로 만들 수 있는 모든 가능한 사각형 조합을 찾고, 갈색 격자를 추가하며 전체 카펫의 크기를 찾아야 한다. 그리고 카펫의 가로길이는 세로 길이와 같거나, 세로 길이보다 길어야 한다. 코드 import java.util.*; /* 노란색으로 만들 수 있는 사각형의 형태를 모두 찾은 뒤 그 둘.. 2023. 5. 4.
[level 1] 모의고사 - 42840 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; import java.util.stream.IntStream; class Solution { public int[] solution(int[] answers) { int[] answer; /* 1번의 방식 = 1-2-3-4-5순 2번의 방식 = 2-1 / 2-3 / 2-4 / 2-5 / 2-1 순 3번의 방식 = 3-3 / 1-1 / 2-2 / 4-4 / 5-5 / 3-3 순 각각의 방식의 순서대로 찍는순서 배열을 만든 후 검사하기 */ final int[][] .. 2023. 5. 4.
[level 2] 모음 사전 - 84512 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { static final String[] alphabet = {"A","E","I","O","U"}; public int solution(String word) { // alphabet안에 들어있는 문자열을 기준으로 만들 수 있는 모든 단어를 만들어 dict에 저장 List dict = makeString(""); // 사전순으로 모든 문자열이 저장되어있는 dict의 word 위치를 찾으면 그게 답 int answer = dict.in.. 2023. 5. 4.
[level 2] 행렬의 곱셈 - 12949 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = {}; // 행렬 곱셈의 결과, 행렬의 크기는 왼쪽행렬의 행 개수와 오른쪽 행렬의 열 개수를 가진다. int[][] arr = new int[arr1.length][arr2[0].length]; // 반복문을 통해 각각의 위치에 맞는 값을 넣어준다. for(int r = 0; r < arr.length; r++){ for(int c = 0; c.. 2023. 4. 26.
[level 2] 거리두기 확인하기 - 81302 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import java.util.*; class Solution { // 응시자의 위치를 담을 클래스 생성 private static class Point{ public final int r,c; private Point(int r, int c){ this.r = r; this.c = c; } @Override public String toString(){ return r+" "+c; } } public int[] solution(String[][] places) { int[] answer = new.. 2023. 4. 26.