본문 바로가기

Java95

[프로그래머스/알고리즘] 정수 내림차순으로 배치하기 (자바/Java) 문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. Step1. 문제분석 길이만큼 반복문으로 돌고 이를 문자열을 하나씩 배열에 담아 준다. 그 후 오름차순으로 정렬하고, 그 값들을 다시 역순으로 배열에 담아준다. 배열에 담은 값을 Long타입으로 다시 변환해준다. Step2. 문제풀이 코드 import java.util.*; class Solution{ public long solution(long n){ String str = n + ""; String ans = ""; char[] ar.. 2022. 11. 23.
[Java] 클래스의 구성 클래스에는 객체가 가져야할 구성 멤버가 선언된다. 필드(Field) 생성자(Constructor) 메소드(Method) 이 구성 멤버들은 생략되거나 복수 개가 작성될 수 있다. 필드(Field) 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳 선언된 형태는 변수와 비슷하지만, 필드를 변수라 부르지는 않음 변수는 생성자와 메소드 내에서만 사용, 생성자와 메소드가 실행 종료되면 자동 소멸 필드는 생성자와 메소드 전체에서 사용되며, 객체가 소멸되지 않는 한 객체와 함께 존재 생성자(Constructor) new 연산자로 호출되는 특별한 중괄호 {} 블록 객체 생성 시 초기화를 담당 (필드를 초기화하거나, 메소드를 호출해서 객체를 사용할 준비를 한다) 메소드와 비슷하게 생겼지만, 클래스 이름으로 되어.. 2022. 11. 22.
[Java] 클래스 선언 클래스 구조 클래스의 구성 맴버 설명 필드(Field) 객체의 데이터가 저장되는 곳 생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당 메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성 클래스 내부에는 클래스의 속성을 나타내는 필드와 클래스의 동작을 나타내는 메소드 그리고 클래스를 생성할 때 호출할 수 있는 생성자가 있습니다. 생성자는 new 연산자를 통해 호출할 수 있는 메소드라고 생각하시면 되며 주로 필드의 변수들을 초기화하는 역할을 합니다. 클래스 선언 및 인스턴스 생성 클래스 선언 class 클래스명{ } class Student{ //필드(Field) String name; //이름 int age; //나이 int korea.. 2022. 11. 22.
Object-Oriented Programming(OOP) 객체 지향 프로그래밍 [Object-Oriented Programming(OOP) ] 문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로, 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론 객체 : 세상에 존재하는 모든것, 프로그래밍에서의 객체는 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹 [EX] 컴퓨터(객체) = 데이터(본체, 모니터, 키보드) + 기능(화면, 소리, 입력, 출력) 코드 재사용성과 생산성의 향상 효과를 볼 수 있고, 유지보수의 편의성 덕택에 협업이 중요하고 규모가 큰 대형 프로젝트에 사용되는 프로그래밍 이론이다. OOP의 장점 코드 재사용성 증가 상속을 통해 프로그래밍시 코드의 재사용을 높일 수 있다. 생산성 향상 잘 설계된 클래스를 만들어서 독립적인 객체를 사용.. 2022. 11. 22.
[프로그래머스/알고리즘] 자연수 뒤집어 배열로 만들기(자바/Java) 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. Step1. 문제분석 n의 값을 역순으로 index에 담으면 된다고 생각했다. for 문으로 n의 길이만큼 시작을 해서 역순으로 빼면서 진행했다. Step2. 문제풀이 코드 class Solution { public int[] solution(long n) { String str = n + ""; int[] answer = new int[str.length()]; int j = 0; for (int i = str.length() - 1; i >= 0; i--) { answer[j] = Inte.. 2022. 11. 21.
[프로그래머스/알고리즘] 자릿수 더하기(자바/Java) 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 Step1. 문제분석 우선 자연수니까 나누기를 해서 1의 자리수를 변수에 더하면 된다. 그러면 %10을 하면 1의 자리수가 나머지가 될 것이고 그 값을 변수에 더하고, 다시 10을 나누면 된다. Step2. 문제풀이 코드 public class Solution { public int solution(int n) { int answer = 0; while(n>0) { answer += n%10; n= n / 10; } return answer; } .. 2022. 11. 21.
[프로그래머스/알고리즘] 이상한 문자 만들기 (자바/Java) 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 설명 "try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" .. 2022. 11. 21.
[프로그래머스/알고리즘] 완주하지 못한 선수(자바/Java) 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. Step1. 문제분석 우선 동명이인이 있을 수 있다. 라고 조건이 있으고 두 배열을 비.. 2022. 11. 21.
[프로그래머스/알고리즘] 수박수박수박수 (자바/Java) 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. Step1. 문제분석 반복문을 돌아서 i의 값이 첫번째, 두번째 이렇게 순서대로 하려면 2를 나눠서 나머지 값이 0일때, 1일때 2가지 조건으로 '수', '박' 이런 순서대로 들어가면 된다. Step2. 문제풀이 코드 class Solution { public String solution(int n) { String answer = ""; for(int i = 0; i < n; i++){ if(i % 2 == 0){ answer += "수".. 2022. 11. 21.