본문 바로가기

알고리즘80

프로그래머스 스트링을 숫자로 바꾸기 - 문제 strToInt 메소드는 String형 str을 매개변수로 받습니다. str을 숫자로 변환한 결과를 반환하도록 strToInt를 완성하세요. 예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 이 문제를 풀 때 Integer.parseInt가 양의 정수 값만 변환시켜주는 줄 알고 다른 방법을 찾고있었는데, 알고보니 음의 정수까지 지원을 해준다... 힘 빼지 않는 걸로.. 2018. 4. 24.
프로그래머스 가운데 글자 가져오기 - 문제getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다.예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다. 이 문제는 substring을 알고 있다면 쉽게 풀 수 있는 문제이다.substring을 설명하자면,예를들어 power라는 단어가 있을 때String word = "power";String word1 = word.substring();여기서 substring에 인자값으로 ( 1 ) 의 형태 혹은 (1, 4)와 같은 형태로 사용할 수 있다.(1)만 넣어준 경우에는 1번째 부터 끝까지 전체를.. 2018. 4. 24.
프로그래머스 삼각형 출력하기 문제 : printTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다.다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printTriangle 메소드를 완성하세요printTriangle이 return하는 String은 개행문자('\n')로 끝나야 합니다. 높이가 3일때 ******높이가 5일때 *************** 단지 별찍기에만 신경을 써서 문제의 조건대로 풀지 않았었다. 답을 유추하는 방법은 여러가지가 있지만 조건에 맞게 답을 내는 것도 하나의 방법이라고 생각된다. 2018. 4. 23.
프로그래머스 피보나치 수 알고리즘 문제는 한번 풀었다고 해서 끝난게 아니고, 실행시간이나 로직들의 최소화에 따라 달라지기 때문에 계속 반복해서 풀어야 할필요성을 느끼게 되었다.그래서 여태 풀어서 블로그에 올렸던 알고리즘들을 완벽히 할 때 까지 반복하려고 한다. - 문제 피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요. 예를 들어 n = 3이라면 2를 반환해주면 됩니다. 처음에는 재귀함수를 사용해서 문제를 풀었다. 하지만 재귀함수로 할 경우 값이 커짐에 따라 실행시간이 오래 걸려 오답처리가 되었다그래서 반복문을 사용해서 다시 풀었다. 2018. 4. 23.
프로그래머스 시저 암호 (level.3) 문제 : 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다.A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다.보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 caesar 함수를 완성해 보세요.“a B z”,4를 입력받았다면 “e F d”를 리턴합니다. 이 문제를 보자마자 a와 A가 아스키 코드 몇이더라..ㅎ 까먹어서 찾아보았다.이 문제에서 필요한 알파벳들의 아스키코드를 보면아스키코드 전체는 0~127까지알파벳은 26개, 대문자 A와 a 는 32 차이A= 65~96부터a= 97~122다. charAt을 사용하여 첫번째 문자를 추출하고Character.isUpperCase()를 사용 대문자인지 .. 2018. 2. 26.
프로그래머스 멀리뛰기 (level.3) 문제 : 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 출력하는 jumpCase 함수를 완성하세요. 예를 들어 4가 입력된다면, 5를 반환해 주면 됩니다. 이 문제는 단순히 4칸을 가는 방법에 대해서만 구하려고 노력을 했었다. 그러다보니 답을 구하지 못했다. 알고보니 전체에 대한 흐름을 봐야지 풀 수 있는 문제였다. 1칸이 있을 때 = 1(1개) 2칸이 있을 때 = 1+.. 2018. 2. 21.