Algorithm 215

Java 문자열 비교 == 와 equals()의 차이

Java에서 int와 boolean과 같은 일반적인 데이터 타입의 비교는 == 연산자를 사용해 비교한다. 하지만 String은 객체이기 떄문에 값을 비교할 때 ==이 아닌 equals()라는 메소드를 사용하여 비교한다. String 변수 생성 방법 1. 리터럴 이용 2. new 연산자 이용 String str1 = "apple"; //리터럴을 이용한 방식 String str2 = "apple"; //리터럴을 이용한 방식 String str3 = new String("example"); //new 연산자를 이용한 방식 String str4 = new String("example"); //new 연산자를 이용한 방식 리터럴을 사용하는 경우, string constant pool 영역에 존재하게 되고, new..

Algorithm 2022.06.21

Programmers / Level 1 / 문자열 내 p와 y의 개수

[문제설명] 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. [제한사항] 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. [입출력 예] s answer "pPoooyY" true "Pyy" false class Solution { boolean solution(String s) { boolean an..

Programmers / Level 1 / 문자열 다루기 기본

[문제설명] 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. [제한사항] s는 길이 1 이상, 길이 8 이하인 문자열 입니다. [입출력 예] s return "a234" false "1234" true class Solution { public boolean solution(String s) { final String REGEX = "[0-9]+"; boolean answer = false; if((s.length() == 4 || s.length() == 6) && s.matches(REGEX)) { answer = true; } return an..

자바 matches 함수

matches() : boolean matches (String REGEX) : 정규 표현식과 일치하는 지 여부를 확인하는 함수 matches()함수는 정확히 일치해야만 true를 반환한다. 특정 문자열을 검색하는 경우보다는, 정규 표현식을 사용해 한글, 숫자 등의 일정 패턴의 텍스트가 존재하는지 확인할 때 사용한다. 자주 쓰이는 정규 표현식 [0-9]* 또는 [0-9]+ : 숫자 포함되는지 판단! *은 숫자가 0개 이상 있는지 확인, +는 숫자가 1개 이상 있는지 확인함 [가-힣]+ : 한글이 있는지 판단 [a-zA-Z]+ : 영문자 있는지 판단 [a-zA-Z-0-9] : 영문자 숫자 조합 있는지 판단

Algorithm 2022.06.20

Programmers / Level 1 / 수박수박수박수박수박수?

[문제설명] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. [제한사항] n은 길이 10,000이하인 자연수입니다. [입출력 예] n return 3 "수박수" 4 "수박수박" class Solution { public String solution(int n) { String answer = ""; for(int i=0; i

Programmers / Level 1 / 제일 작은 수 제거하기

[문제설명] 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. [제한사항] arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. [입출력 예] arr return [4,3,2,1] [4,3,2] [10] [-1] import java.util.ArrayList; class Solution { public int[] solution(int[] arr) { int min = arr[0]; // 가장 작은 수 ..

Programmers / Level 1 / 하샤드 수

[문제설명] 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. [제한사항] x는 1 이상, 10000 이하인 정수입니다. [입출력 예] 10 true 12 true 11 false 13 false class Solution { public boolean solution(int x) { boolean answer = true; int num = 0; // x의 자릿수의 합 int a = x; while(a >= 1) { num += a%10; a /= 10; } if(x % num ..

Programmers / Level 1 / 핸드폰 번호 가리기

[문제설명] 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. [제한사항] phone_number는 길이 4 이상, 20이하인 문자열입니다. [입출력 예] class Solution { public String solution(String phone_number) { String star = phone_number.substring(0, phone_number.length()-4); // *로 변경할 문자 String noStar = phone_number.substring(phon..