본문 바로가기
반응형

Language/알고리즘 문제풀이37

프로그래머스 JadenCase 문자열 만들기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : JadenCase 문자열 만들기 언어 : 자바(Java) JadenCase 문자열 만들기에서 주로 봐야할 점은 아래의 두갠데 1. 첫 문자는 무조건 대문자 나머지는 다 소문자 (띄어쓰기 하면 반복) 2. 띄어쓰기는 한번만 사용되지 않음 내 풀이방법은 아래와 같다 먼저 전체 문자를 소문자로 바꿔준 뒤에 for 문을 돌려서 띄어쓰기가 나오면 무조건 그 다음 글자를 대문자로 나오게 해야 하므로 flag를 0으로 준다 이후 flag가 0이면서 다음 글자가 띄어쓰기가 아니라면 그 글자는 대문자로 만들어서 붙인 뒤 flag를 올려 나머지는 다 소문자로 붙인다 이런 식으로 반복해 주면 끝이 나는데 대부분이 여기서 고전하는 이유가 띄어쓰기가 "AA AAA BB.. 2019. 9. 19.
프로그래머스 최댓값과 최솟값(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 최댓값과 최솟값 언어 : 자바(Java) String 형태의 값을 받아서 숫자들을 분리한 뒤 최솟값, 최댓값을 반환해주면 되는 문제인데 내 풀이방법은 아래와 같다 먼저 받은 String 형태의 값을 " "로 split 시켜서 배열에 모두 담은 다음에 다시 Integer 형태로 바꾼 뒤 모두 list에 담는다 Collections.sort(list)로 오름차순 정렬시킨 후 가장 작은 값은 0이니 0번째와 마지막에 들어있는 값을 넣어 반환해주면 끝이 난다 마지막으로 프로그래머스에 바로 적용 가능한 코드는 아래와 같다 import java.util.ArrayList; import java.util.Collections; class Solution { .. 2019. 9. 19.
프로그래머스 영어 끝말잇기(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 영어 끝말잇기 언어 : 자바(Java) 이 끝말잇기에서 n이 사람 수인 만큼 사람들이 모두 말하면 차례가 1 올라가는 거고 끝말잇기에서 걸리는 조건은 1. 새로 말하는 단어의 첫 글자가 이전 단어의 마지막 글자와 다르거나 2. 이미 말한 단어를 또 말하는 경우 이 두가지만 확인해주면 되는데 여기서 아무도 걸리지 않았다면 0,0 을 반환하면 된다 내 풀이방법은 다음과 같다 일단 for 문을 돌리면서 두번째 차례부터 이전 단어와 지금 단어의 마지막 글자, 첫 글자를 비교해 주고 만약 다르다면 사람과 횟수를 넣어서 바로 break; 시킨다 다음으로 말하려는 단어는 list.contain을 통해 식별 가능한데 여기서 중복된 단어를 말하면 바로 사람과 횟.. 2019. 9. 18.
프로그래머스 위장(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 위장 언어 : 자바(Java) 위장 문제에서 포인트는 옷 종류는 여러개인데 하나씩 입어도 되긴 하는데 하나도 입지 않을 수는 없을 때 공식이 어떻게 되지? 난 수학시간에 취미가 자는거라 이게 굉장히 어렵더라 어쨌든 내 풀이방법은 아래와 같은데 일단 옷 종류에 따른 모든 경우의 수 구하는 공식은(옷 안입는 것 까지) ( 옷 종류별 합계 + 1 ) * ( 옷 종류별 합계 + 1 ) ... 옷 종류에 따라 계속 추가 이렇게 하는데 여기서 아무것도 선택하지 않는 경우는 해당이 안되므로 답에서 -1을 해주면 된다 map을 사용해 옷 이름이 무엇인지는 상관없이 옷 유형만 같으면 기존 값에 +1 해주는 식으로 사용한다 이후 list에 옷 종류별 합계를 차례대.. 2019. 9. 18.
프로그래머스 전화번호 목록(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 전화번호 목록 언어 : 자바(Java) 약간 문제 테스트 케이스가 잘못된 것 같은데 이게 phone_book의 첫 값을 가지고 다른 값들의 접두사(1199는 119의 접두사, 2233은 99의 접두사가 아님..)로 쓰이는지 확인하는 게 아니라 최소값을 가지고 접두사로 쓰이는지 확인하는 것 같다 Sort를 넣냐 안넣느냐에 따라서 무조건 갈리는 걸 보면 내 생각에는 아무래도 문제 설명이 잘못된 것으로.. 어쨌든 보면 phone_book의 최소값이 다른 배열 값의 접두사로 사용되는지 확인해서 사용되면 false 사용 안되면 true를 반환하면 되는데 내 풀이방법은 아래와 같다 일단 최소값을 가지고 접두사를 판단하므로 Array.sort를 해 주면 최소.. 2019. 9. 17.
프로그래머스 숫자의 표현(Java) 사이트명 : 프로그래머스(Programmers) 문제명 : 숫자의 표현 언어 : 자바(Java) 문제만 보면 뭔가 어려워 보이는데 설명을 어렵게 보이게 해놔서 어려운거지 실상은 간단하다 1부터 n까지 다 더해봐서 n을 만들 수 있는 경우가 몇개나 되냐는 것이다 1+2+3+4+5 이런 식으로 15를 만들 수 있는데 다음에는 2부터 시작해서 15가 되나.. 이런 식으로 15까지 반복해주면 된다 내 풀이방법은 아래와 같은데 while문은 1부터 n까지 돌려주고 while 안에 for문은 while 증감값(j) 부터 시작해서 n까지 돌려주는데 이렇게 1+2+3+4+5... 식으로 더해서 n이 나오면 answer 갯수를 올려주고 n보다 커져버리면 break 시켜서 while을 반복한다 이렇게 돌리고 돌려서 whi.. 2019. 9. 17.

반응형