본문 바로가기

공부72

[백준] 2108번 문제출처: https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 주어진 홀수개의 숫자들에 대한 산술평균, 중앙값, 최빈값, 범위를 구하는 것이었다. 다 괜찮은데 최빈값 구하는데서 발목이 잡혔다. 찾아보니 collection 에서 Counter라는 모듈을 사용하면 된다고 한다. most_common을 쓰면 최빈값을 출력할 수 있고, 최빈값은 (해당값, 빈도수) 로 나타난다. 만약 빈도수가 같으면 두 번째로 작은 값을 출력한다. ​ 2022. 6. 15.
[프로그래머스] 12903번 문제출처: https://programmers.co.kr/learn/courses/30/lessons/12903 코딩테스트 연습 - 가운데 글자 가져오기 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s ret programmers.co.kr 단어 s가 주어졌을 때, 단어 길이가 짝수라면 가운데 두 글자를 반환하고 홀수면 가운데 한 글자를 반환한다. 그래서 조건문으로 짝수, 홀수인 경우를 나누어줬다. 홀수이면 가운데 하나만 뽑아주면 되므로 s의 길이+1을 2로 나눈 번째의 알파벳을 출력했다. 다만, 0번째부터 시작이므로 뒤에 -1을 해주는 것도 잊지 .. 2022. 6. 15.
[프로그래머스] 77884번 문제출처: https://programmers.co.kr/learn/courses/30/lessons/77884 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr left와 right 라는 두 정수가 주어지면, left와 right를 포함한 그 사이의 모든 수 중에서 그 수의 약수 개수가 짝수면 더하고, 홀수면 뺀다. 약수의 개수를 구하는 알고리즘은 어렵지 않았다. for문을 돌려 1부터 해당 숫자까지 범위로 잡고 나눠서 나머지가 0이면 count + 1 해주.. 2022. 6. 15.
[프로그래머스] 12933번 문제출처: https://programmers.co.kr/learn/courses/30/lessons/12933 코딩테스트 연습 - 정수 내림차순으로 배치하기 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이 programmers.co.kr 정수 n을 받아 각 자리수를 큰 것부터 작은 순으로(내림차순으로) 정렬한다. 문제 파악도 쉽고 엄청 짧은 코드로 쓸 수 있을 것 같았는데, 쓰다보니 꽤 길어졌다. n을 string의 형태로 다시 정의하고 n의 첫번째 숫자부터 하나씩 배열로 받았다. 이후 그 배열을 내림차순으로 정렬하고, 반복문을 만들어 .. 2022. 6. 15.
[백준] 1010번 문제출처: https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 순열과 조합을 이용하는 문제같았다. 각 테스트 케이스에 대해 다리를 지을 수 있는 경우의 수를 출력하는 것이다. 예제를 확인해보니 순서는 고려하지 않는 것같았다. 그래서 선택 점이 같은 경우의 수는 빼줘야 했다. (중복되지 않도록.) 그래서 반복문을 만들어 순열과 "조합"의 형태를 만들어냈다. 2022. 6. 15.
[프로그래머스] 42587번 문제출처: https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 순서대로 입력받은 인쇄물을 중요도에 따라 재정렬하여, 내가 입력한 출력물은 몇 번째로 나오는지 구하는 것이다. key, value가 있어야하기 때문에 dictionary를 생각해봤는데, dict는 정의하고 시작하는 방법밖에 떠오르지 않아서 패스. enumerate 기능을 사용했다. for 문에서 자주 등장시켰던 기능이다. deque 안에 enumerate.. 2022. 6. 15.