본문 바로가기

알고리즘 문제 풀이

(64)
프로그래스[LEVEL1] - 로또의 최저 순위와 최고 순위 https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 사실 처음 풀어보는 문제는 아니다 처음 풀었을 때는 if 문을 엄청나게 중첩해서 풀었던 것 같은데 메서드를 이용하면 이렇게 간결하게 풀이 할 수 있다 0이 적혀있는 부분을 다 맞춘 케이스와 다 틀린 케이스를 나누면 각각 최고 순위와 최저 순위가 나온다.
프로그래머스 [LEVEL1] - 다트 게임 ('2018 카카오 블라인드 코딩테스트') https://school.programmers.co.kr/learn/courses/30/lessons/17682 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 진짜 간단하게 모든 케이스를 if else 로 풀었다 여기서 문제는 점수가 10인 경우다 dartResult 요소가 처음에 1이나오고 다음에 0이 나오면 10을 배열에 넣었다 문제가 길어서 약간 쫄게되는데 그럴 필요가 없었다
프로그래머스 [LEVEL1] - 실패율 ('2019 카카오 블라인드 코딩테스트') 문제 풀이 sort와 filter map 같은 배열 메서드를 제대로 알고 활용할 줄 알면 충분히 풀 수 있는 문제다 주의 할점은 실패율을 기준으로 내림차순으로 정렬하고 같으면 stage를 기준으로 오름차순으로 정렬한다
프로그래머스[Level1] - 시저 암호 https://school.programmers.co.kr/learn/courses/30/lessons/12926 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제를 처음 읽었을때 알파벳의 순서에 관련된 문제라고 생각이 들어 고심하다 아스키 코드를 이용해서 해결하였습니다 두번째 풀이는 아스키 코드를 쓰지 않고 해결한 풀이입니다.
백준 7568 - 덩치 https://www.acmicpc.net/problem/7568 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 문제풀이 브루트포스를 이용하는 문제이다 몸무게와 키가 자신보드 큰 사람을 반복문을 모두 돌려서 카운트 해주는 방식으로 해결하였다.
백준2798 - 블랙잭 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 브루트포스 알고리즘 을 이용해서 해결하였다 삼중 for 문을 이용해 모든 카드의 경우의 수를 조합해서 M과 같거나 작은 수를 배열에 넣은 뒤 배열에 들어있는 값 중 최댓값을 출력하는 방식으로 해결하였다.
프로그래머스[LEVEL 1] - 최소직사각형 https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 간단한 문제다 size 요소 배열들을 내림 차순으로 정렬 한 다음 가로에서 가장 큰 값과 세로에서 가장 큰 값을 구해 곱하는 방식으로 해결했다
프로그래머스[LEVEL 1] - 신고결과 받기 ("2022 카카오 블라인드 코딩테스트") https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 먼저 첫번째 풀이다 풀이 자체는 결과는 맞게 나오는 것 같지만 시간 초과가 나온 풀이다 다음은 두번째 풀이다 첫번째 풀이에서 시간초과가 나오는 바람에 좀더 객체를 적극적으로 이용해서 해결하려고 했다 아직 코드를 효율적으로 짜는 법을 많이 모르는 것 같다 무작정 반복문을 이용해서 하드코딩을 하는 경우가 많은것 같다 이번 문제에서도 사실 객체를 잘 쓰면 좀더..