no image
프로그래머스 [81301] 숫자 문자열과 영단어
문제 설명 네오와 프로드가 숫자놀이를 하고 있습니다. 네오가 프로드에게 숫자를 건낼 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로드는 원래 숫자를 찾는 게임입니다. 숫자를 영단어로 바꾸는 예시 1478 -> one4seveneight 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s 가 매개변수로 주어집니다. s 가 의미하는 원래 숫자를 반환하는 함수를 완성해주세요. 코드 class Solution { public int solution(String s) { String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "s..
2025.10.30
no image
프로그래머스 [12926] 시저 암호
문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수를 만드세요! 코드 class Solution { public String solution(String s, int n) { StringBuilder answer = new StringBuilder(); char[] str = s.toCharArray(); for (int i = 0; i 정리 처음엔 String 객..
2025.10.29
no image
프로그래머스 [86491] 최소직사각형
문제 설명 명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작사어 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다. 여러 명함의 크기가 주어졌을 때, 모든 명함을 수납할 수 있는 가장 작은 직사각형의 넓이를 구하는 문제이며, 명함은 회전해서 넣을 수 있습니다. 코드 코드를 풀면서 테스트는 성공했으나 제출 했을 때 몇 개의 테스트 케이스가 걸렸었다. 우선 이유는 w, h의 초기값을 각 가로, 세로의 첫 번째 값으로 초기화를 시켜주었는데 이렇게 초기화를 시켜준 이유는 첫 번째 명함 크기를 기준으로 잡고, 뒤에 오는 명함들이 이보다 큰지 비교..
2025.10.28
no image
프로그래머스 [147355] 크기가 작은 부위 문자열
문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 구하는 기능을 구현하세요. 코드 class Solution { public int solution(String t, String p) { if(t.startsWith("0") || p.startsWith("0")){ return 0; } int answer = 0; for(int i = 0; i 테스트도 성공했는데 제출하니까 절반이나 런타임 에러가 발생한다.. 왜!!!!!!!!!!!!!!!!!!!!..
2025.10.27
no image
프로그래머스 [131705] 삼총사
문제 설명 한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 한다. 예를 들어 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5 일 때 첫 번째, 세 번째, 네 번째 학생의 정수번호를 더하면 0이므로 새 학생은 삼총사이다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사이다. 학생들 중 삼총사를 만들 수 있는 방법의 수를 구하는 함수를 구현해라 코드 class Solution { public int solution(int[] number) { int count = 0; for(int i..
2025.10.27
no image
프로그래머스 [12930] 이상한 문자 만들기
문제 설명 문자열 s는 한 개 이상의 단어로 구성되어있다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수를 구현하세요. 코드 class Solution { public String solution(String s) { String[] str = s.split(" "); for (int i = 0; i 이렇게 풀어보았는데 테스트는 성공하지만 제출했을 때 실패가 나온다. 공백기준으로 배열을 만들었고, 그 배열을 돌면서 changeUppper 메서드를 실행하게 구현하였다. changeUpper는 위에서 만든 문자열 배열 중 하나의 문자열만 들어오게 되어있고..
2025.10.27
no image
프로그래머스 [68935] 3진법 뒤집기
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법을 표현한 수를 return 하도록 함수를 만들어보세요. 코드 class Solution { public int solution(int n) { String str = Integer.toString(n, 3); String revers = new StringBuilder(str).reverse().toString(); return Integer.parseInt(revers, 3); }} 정리 학사과정에서 또 정처기 준비를 하면서 진법 변환은 수없이 많이 했었는데 갑자기 3진법이 나타나서 뭔가 싶었다. 조금 ..
2025.10.24
no image
프로그래머스 [12940] 최대공약수와 최소공배수
문제 설명 두 수를 입력 받아 두 수의 최대공약수와 최소공배수를 반환하는 함수를 만들어보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3,12의 최대공약수는 3, 최소공배수는 12이므로 [3, 12]를 반환해야합니다. 코드 class Solution { public int[] solution(int n, int m) { int gcd = getGcd(n ,m); int lcm = (n * m) / gcd; return new int[] {gcd, lcm}; } private int getGcd(int a, int b){ while(b ..
2025.10.23
no image
백준 [1000] A+B - Java
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성. codeimport java.util.Scanner;public class Main { public static void main(String[] args) { int a, b; Scanner scanner = new Scanner(System.in); a = scanner.nextInt(); b = scanner.nextInt(); System.out.println(a+b); }}review Scanner scanner = new Scanner(System.in); -> 사용자로부터 키보드로 입력받기 위해 사용하는 클래스 .nextInt(); -> 정수형 입력..
2024.12.30