본문 바로가기
반응형

Language/알고리즘 문제풀이37

프로그래머스 자릿수 더하기 풀이(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 자릿수 더하기 언어 : 자바(Java) int 타입의 값을 받아서 각 자리수의 값을 합한 후 반환해야 하는 문제인데 문제는 int 타입을 자릿수별로 어떻게 쪼개냐는 것이다 내 풀이방법은 아래와 같은데 일단 받은 int 타입의 값을 String.valueOf(int값); 을 통해 String으로 만든 뒤 이 값들을 subString으로 한글자씩 자른 뒤 Integer.parseInt로 다시 int로 바꿔 더한 후 반환한다 마지막으로 프로그래머스에 바로 적용 가능한 답안은 아래와 같다 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; Stri.. 2019. 9. 4.
프로그래머스 약수의 합 풀이(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 약수의 합 언어 : 자바(Java) 약수란 무엇인가? 12를 1로 나눠서 나머지 값이 0이지 않은가 그럼 약수다 약수란 나눴을 때 나머지 값이 나오지 않는 수를 말한다! 12를 주면 1부터 12까지 돌려보면서 나눴을 때 나머지 값이 나오지 않는 수들을 모두 합쳐서 반환하라는 얘기다 내 풀이방법은 아래와 같은데 for문을 한번 돌려주면서 1부터 6까지 돌리는데 주어진 값을 1부터 6까지 나눠보면서 나머지 값이 없을 경우 그걸 더해준 후 반환하면 된다 프로그래머스에 바로 적용 가능한 코드는 아래와 같다 int answer = 0; for(int i = 1; i 2019. 9. 4.
프로그래머스 이상한 문자 만들기 풀이(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 이상한 문자 만들기 언어 : 자바(Java) String 타입의 문자열을 받는데 홀수 인덱스는 대문자, 짝수 인덱스는 소문자로 만들어야 하고 띄어쓰기를 할 경우 다음 문자는 무조건 대문자로 시작하게 만들어서 문자열을 반환하라는 얘긴데 여기서 틀리는 사람들의 대부분은 대문자를 만들 생각만 했지 대문자를 소문자로 만드는 것은 깜빡해서 틀리는 사람들이 많은데 대문자를 소문자로 바꾸는 것도 넣어서 풀어야 한다 내 풀이 방법은 아래와 같다 일단 반복문을 돌리는데 글자를 substring으로 한글자씩 자른다 이후 자른 글자가 스페이스(" ") 라면 그대로 공백을 붙여주고 다음 숫자는 무조건 대문자가 나오게 spaceCheck값을 0으로 바꿔준다 0이 왜 대.. 2019. 9. 4.
프로그래머스 탑 풀이(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 탑 언어 : 자바(Java) 이번 문제도 역시 설명이 문제보다 더 어려운데 heights 배열을 주는데 배열 끝부터 배열 0 순서대로 진행한다 근데 배열에 현재 값보다 더 큰 값이 있으면 그 배열의 인덱스를 answer 배열에 넣어서 return 하면 된다는 얘기!! 예제로 예를 들면 배열에 6,9,5,7,4가 넣어져 들어오는데 4 다음으로 나오는 7이 4보다 큰데 그럼 [0,0,0,0,4]가 된다 그 다음 값인 7은 9가 더 높은 값이므로 [0,0,0,2,4] ... 이런 식으로 진행한다 내 풀이방법은 아래와 같은데 일단 탑 배열을 +1칸 해서 넣어줬는데 이거는 내가 배열 -1 하면서 비교하는게 어려워서 일부러 한칸 더 크게 배열을 만든 뒤 배.. 2019. 9. 3.
프로그래머스 스킬트리 풀이 사이트명 : 프로그래머스(Programmers) 문제명 : 스킬트리 언어 : 자바(Java) 위의 내용은 쉬운 말을 어렵게 써 놨는데 우선 skill_trees를 쭉 받은 뒤 skill과 비교해봐야 하는데 C B D의 순서만 지키면 중간에 어떤 값이 들어와도 상관이 없고 C B D가 꼭 다 들어가지 않아도 된다 그러나 순서가 맞지 않는 경우에는 체크하면 안된다 요약해보니 간단한데 내 풀이방법은 아래와 같다 먼저 리스트 안에 skill 값을 잘라서 넣어주는데 skill.substring(i, i+1); 로 한글자식 잘라서 편하게 넣어줄 수 있다 다음에는 for문을 두번 돌려주는데 배열 skill_trees의 길이만큼 그리고 그 안에서 skill_trees[i]의 길이만큼(배열 인덱스 값당 길이) 돌리게 되.. 2019. 9. 3.
프로그래머스 소수 찾기 풀이 사이트 : 프로그래머스(Programmers) 문제명 : 소수 찾기 특정 값을 받으면 1부터 받은 값 사이에 소수가 몇개나 있나 확인하는 문제인데 정직하게 모든 숫자를 다 나눠본 다음 1과 자기 자신의 경우만 나눠지는 숫자의 갯수를 더하면서 하면 문제는 맞아도 효율성에서 틀려서 눈물을 쏟게 된다 소수를 구할 때에는 에라토스테네스의 체를 써야된다고 하는데 에라토스테네스의 체란? n값까지 구하면서 소수를 찾으면 소수의 배수를 구한다음 그 배수를 다 지워버리고 나면 소수만 남는다는 얘기다 즉 위 스크린샷에서는 120전에 소수가 몇개인지 구하는건데 11*11은 120을 넘어가기 때문에 11 전의 소수를 구한다음 그 배수를 다 빼버리면 남은 값은 다 소수라는 얘기다 내 풀이방법은 다음과 같은데 먼저 배열을 실제 .. 2019. 9. 1.

반응형