문자열 8

[프로그래머스] 두 수의 합 : Int범위를 넘어가는 경우 String으로 합 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열로 주어진 숫자 두 개의 합을 구해 문자열로 반환하는 문제이다. 문제를 얼핏 봤을 때는 간단해 보였지만, 이 문제의 핵심은 문자열로 주어진 수가 Int의 범위를 넘어간다는 것이다. 양수라는 점을 감안해 UInt64를 사용한다고 하더라도 최대 값을 넘어간다. 그래서 이 문제를 풀기 위해서는 정수로 변환해서 합을 구할 수 없고, 일의 자리부터 자리수를 더해야 한다. (손으로 더하기 문제 풀 때..

Language/Swift 2023.07.17

#문자열 포함여부 확인, 치환 + 자주 쓰는 정규식 패턴

문자열 포함여부 확인 s.contains("문자") : true/false, 대소문자 구분 s.indexOf("문자") : 특정 문자의 위치를 반환, 찾지 못하면 -1을 반환한다. s.matches("문자") : true/false, 정규식 사용 가능 문자 대체 함수 s.replace(찾을 문자열-CharSequence target-, 바꿀 문자열-CharSequence replacement-) s.replaceAll(찾을 문자열-String regex-, 바꿀 문자열-String replacement-) 자주쓰는 정규식 패턴 숫자만 : ^[0-9]*$ 영문만 : ^[a-zA-Z]*$ 영문만, 띄어쓰기가능 : /^[a-zA-Z\s]+$/ 한글만 : ^[가-힣]*$ 한글만,띄어쓰기가능 : /^[가-힣\s]..

Language/JAVA 2022.01.27

[프로그래머스] 숫자 문자열과 영단어

https://programmers.co.kr/learn/courses/30/lessons/81301 문자열에 포함된 영단어가 있을 때 이를 숫자로 바꿔주는 문제이다. 처음에는 배열로 변환해서 바꿔야 한다고 생각해서, 이걸 어떻게 배열로 바꾸지 고민했는데 문자열을 대체할 수 있는 replace를 사용해서 해당하는 문자의 값을 바꾸면 된다. class Solution { public int solution(String s) { String[] arr = new String[]{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; for (int i = 0; i < arr.length; i++) { //포함하고 있을 ..

Language/JAVA 2022.01.27

[프로그래머스] 문자열 내림차순으로 배치하기

https://programmers.co.kr/learn/courses/30/lessons/12917 문자열을 char배열로 전환해서 정렬 후 다시 String으로 만들어주었다. import java.util.Arrays; class Solution { public String solution(String s) { String answer = ""; char[] arr = s.toCharArray(); Arrays.sort(arr); for (int i = arr.length-1; i >= 0; i--) { answer += arr[i]; } return answer; } } 마지막에 for문으로 돌려주었는데, StringBuilder를 사용할 수 있다. public class ReverseStr { p..

Language/JAVA 2022.01.27

[프로그래머스] 문자열 내 마음대로 정렬하기

https://programmers.co.kr/learn/courses/30/lessons/12915 문자열 배열이 주어지고, 해당 문자열의 특정 인덱스(n)를 기준으로 배열을 정렬하는 문제다. 특정 인덱스의 문자만 추출해서 배열을 정렬하고 나서 1. 이걸 이용해 원래의 배열을 정렬하는 부분 2. 인덱스 문자열이 같을 경우 사전순으로 배열하는 부분 이 어려웠다. 1.은 특정 인덱스의 문자를 추출한 배열은 원래 배열의 위치와 동일하기 때문에 이를 활용하기 위해 그대로 두고, 정렬을 위해 clone();으로 복사본을 새로 만들었다. 그래서 정렬된 배열(wordSort)과 원래 배열(word)을 비교하여 정렬 순서대로 해당되는 index를 찾고 이 index에 해당하는 strings값을 answer배열에 하나..

Language/JAVA 2022.01.26

[프로그래머스] 수박수박수박수박수박수?

자리수마다 글자를 하나씩 넣고, 마지막에 배열을 String으로 바꾸는 방식을 사용했다. import java.util.ArrayList; class Solution { public String solution(int n) { String answer = ""; ArrayList arr = new ArrayList(); for (int i = 0; i < n; i++){ //index고려하면 짝수자리가 "수" if(i % 2 == 0) { arr.add("수"); } else { arr.add("박"); } } answer = String.join("",arr); return answer; } } 다른 문제 풀이를 보니까, 굳이 배열로 만들어서 합치지 않고 바로 +를 이용해서 붙일 수도 있다. impor..

Language/JAVA 2022.01.17

[프로그래머스] 문자열 다루기 기본

class Solution { public boolean solution(String s) { boolean answer = true; if (s.length() != 4 && s.length() != 6) answer = false; for (int i = 0; i '9') { answer = false; } } return answer; } } 임의의 배열을 설정하고, anyMatch를 사용해서 풀려고 했는데 실패했다. 문자열의 경우 char를 많이 이용하여 비교하는 것 같아서, 다른 풀이를 참고하여 작성한 코드이다. char :: https://paran21.tistory.com/30 ++ 정..

Language/JAVA 2022.01.17