반응형

전체 글 369

[백준 알고리즘] 1431번: 시리얼 번호 (Python)

https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net 소스코드 풀이 ★ 문제에서 주어진 조건대로 시리얼 번호를 정렬해야 합니다. sort 안에서 lambda함수를 통해 정렬을 진행하는데, 1번 조건은 len() 함수로 시리얼번호의 길이를 비교해줍니다. ★ 2번 조건의 경우에는 내장함수로 정렬할 수 없기에 직접 확인해줘야 합니다 ! 저는 주어진 시리얼 번호를 읽으면서 자릿수의 숫자일 경우 그 합을 시리얼 번호의 마지막에 추가해줬습니다. 이를 사용..

Algorithm/백준 2023.10.20

[백준 알고리즘] 8979번: 올림픽 (Python)

https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 소스코드 풀이 ★ solved.ac 기준 실버5 난이도의 문제여서 쉽게 해결할 수 있을 줄 알았는데, 아니었습니다 ㅠㅠ ★ 먼저 문제에 주어진 조건에 따라 정렬하는 부분은 간단합니다 ! lambda 함수를 통해 금,은,동 순으로 내림차순 정렬을 해줬습니다. ★ 이후 찾고자 하는 나라 K의 순위를 출력해야 하는데, 공동 순위를 고려해줘야 하며 공동의 순위가 있을 경우 그 다음 ..

Algorithm/백준 2023.10.20

[백준 알고리즘] 18870번: 좌표 압축 (Python)

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다. X1, X2, ..., XN에 www.acmicpc.net 소스코드 풀이 ★ 먼저 좌표 압축에 대해서 잘 이해가 안될수도 있는데, 문제에서 주어진 좌표 압축이란 만약 5,55,555,5555가 주어졌을 때, 좌표 압축을 한 결과는 각각 0,1,2,3이 되게 됩니다, 즉 가장 작은 수부터 차례대로 0,1,2, ... 가 부여되는 방식입니다 ! ★ 입력받는 수들 중, 중복이 있을 수 있기 때문에 set 자료..

Algorithm/백준 2023.10.20

[백준 알고리즘] 16928번: 뱀과 사다리 게임 (Python, BFS)

https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 소스코드 풀이 ★ 주사위를 던지면서 모든 경우의 수를 확인해야 하는 완전탐색 문제입니다 ! 이 때 사다리와 뱀의 정보를 이용하는 것이 중요합니다. 뱀은 높은 칸에서 낮은 칸으로 이동하기에 100으로 가기에는 필요없다고 생각할 수도 있는데, 사다리 (10 - 50), 뱀 (50-28), 사다리 (28 - 99)처럼 뱀을 이용해서도 100으로 빠르게 이동..

Algorithm/백준 2023.10.18

[백준 알고리즘] 13549번: 숨바꼭질 3 (Python, BFS)

https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 소스코드 풀이 ★ 수빈이가 이동할 수 있는 경우를 다 탐색한 후, 그 이후에 가지를 쳐서 뻗어나가는 형식의 전형적인 BFS 문제인 거 같습니다 ! ★ 수빈이가 이동할 수 있는 방법은 순간이동과 걷기가 있습니다 ! 이 떄 순간이동을 하는 경우는 초가 증가하지 않지만 걷는 경우에는 초를 1씩 증가시켜줍니다. ★ BFS 안의 for문을 돌 때 순간이동을 하는 경우 ..

Algorithm/백준 2023.10.18

[백준 알고리즘] 2346번: 풍선 터뜨리기 (Python)

https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 소스코드 풀이 ★ 알고리즘을 풀다보면 리스트를 좌우로 회전하는 문제를 많이 만날 수 있습니다. 그런 유형을 만날 때마다 일일이 구현하는 경우가 대부분이었는데, deque의 rotate함수를 사용하면 회전을 쉽게 구현할 수 있습니다! ★ rotate()함수는 인자로 양수를 넣어줄 경우 오른쪽 회전을 하게 되고, 음수를 줄 경우 왼쪽 회전을 하게 됩니다. ex) dq = deque(..

Algorithm/백준 2023.10.18

[백준 알고리즘] 2776번: 암기왕 (Python)

https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 소스코드 오답 정답 풀이 ★ 위 두 코드의 차이점을 쉽게 발견하셨을까요 ?? 전 사실 이문제 엄청 간단하다고 생각했는데, 2번이나 오답을 받았습니다..! 그 이유는 테스트케이스가 하나가 아닌 t만큼 들어오기 때문에 반복해줘야 하지만 아무생각 없이 제출헀기 때문입니다 ! 꼭꼭 잘 확인하시길 바랍니당 :) ★ 저는 문제를 딕셔너리 자료구조를 사용하여 풀었습니다 ! 수첩 1에 적힌 수들을 딕셔너리에 넣어주고..

Algorithm/백준 2023.10.17

[백준 알고리즘] 2660번: 회장뽑기 (Python, BFS)

https://www.acmicpc.net/problem/2660 2660번: 회장뽑기 입력의 첫째 줄에는 회원의 수가 있다. 단, 회원의 수는 50명을 넘지 않는다. 둘째 줄 이후로는 한 줄에 두 개의 회원번호가 있는데, 이것은 두 회원이 서로 친구임을 나타낸다. 회원번호는 1부터 www.acmicpc.net 소스코드 풀이 ★ 문제를 읽었을 때 이해하기가 조금 난해할 순 있지만 해당 회원 번호에서 모든 회원과 친구가 되기 위해서 몇번동안 BFS 안의 과정을 거쳐야 하는지 구해주시면 됩니다 ! ★ 점수를 구하기 위해 큐에 회원번호와 점수를 기록하는 수를 함께 추가하였습니다. 이 점수는 BFS 안에서 큐에 추가되는 과정마다 다른 루트로 이동하기 때문에 1씩 증가하게 됩니다. 예시 1번에서 1,2 2,3 3..

Algorithm/백준 2023.10.17

[백준 알고리즘] 4358번: 생태학 (Python)

https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 소스코드 풀이 ★ 소수점 4번째자리까지 반올림 한 뒤 출력해줘야 하는데, 이때 round 함수를 사용하면 오답으로 처리됩니다 ! 그렇기에 format이나 f-string을 사용하여 반올림 해주시면 됩니다 :)

Algorithm/백준 2023.10.16
반응형