728x90

2022/01 56

[Python]백준 BaekJoon.AC 2775 : 부녀회장이 될테야(2차원 리스트)

https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 이번 문제는 2차원 리스트를 시도해봤다! 리스트 안에 리스트를 넣는다고 말할 수 있다. (이 문제에서 그러진 않았지만, 열마다 행의 개수를 자유자재로 설정할 수 있음은 정말 큰 편리함이다.) 바깥 리스트를 층수, 안쪽 리스트를 호라고 설정해줬다. 리스트를 생성하고 먼저 for문을 이용해 0층 사람수를 깔아줬다.(k) 0층부터 flo층까지 있고, 0호부터 uni-1호까지 있는 셈이다. 그러나 0호를 1호로 생각하기로 하는, 그런 리스트 형..

[Python]BaekJoon.AC 2022.01.06

[Python]백준 BaekJoon.AC 2292 : 벌집(list)

https://www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 벌집이 층마다 가지고 있는 최대값을 살펴보면 1, 7, 19, 37, 61, 91····으로 이루어져 있다. 이는 이전 값에 +6, +12, +18, +24, +30···· 씩을 더한 값이다. 또한 이는 6의 배수만큼씩 늘어난 값이다. 리스트에 각 껍데기마다 가지고 있는 최대 주소를 저장한다. i와 n을 이용해 for문과 유사한 기능을 구현했다. 그냥 for문을 사용할까 했는데.. while을 사용해봤다...

[Python]BaekJoon.AC 2022.01.05

[Python]백준 BaekJoon.AC 2231 : 분해합(브루트포스 알고리즘)

https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 브루트포스 알고리즘은 노가다를 뜻한다. 처음부터 끝까지 다 시도해보는, 무조건 정답을 발견하는 가장 확실한 방법이다. 소요시간이 많기에 보통 사용하지 않지만, 갖은 방법을 더한 코드보다 무식한 방법이 더 나은 결과를 내는 경우가 있는데, 이를 노가다라 부르지 않고 브루트포스 알고리즘이라 부른다. 시간초과 될 것 같아 N값에서 1씩 빼준 값부터 차례로 계산하려 했는데....

[Python]BaekJoon.AC 2022.01.05

[Python]백준 BaekJoon.AC 10250 : ACM 호텔(ceil, zfill)

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 자바로 이 문제를 풀 때, 꽤나 고민했던 기억이 난다. 근데 파이썬은 정말.. 간단하고 좋은 내장함수가 너무 많다! string 취급해준 room 변수에 if문으로 구한 층수를 붙여줬다. N을 H로 나눈 나머지가 층수가 된다. 맨 앞자리 숫자. 뒷숫자는 N을 H로 나눈 몫과 연관이 있는데, 정확히는 이 몫을 올림해준 값이 나머지 뒷숫자이다. ceil()을 이용해 몫을 올림처리하고, z..

[Python]BaekJoon.AC 2022.01.05

[Python]백준 BaekJoon.AC 4153 : 직각삼각형(while, 제곱)

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net **은 제곱을 의미한다! while True: tri = list(map(int, input().split())) if tri[0] == 0: break tri.sort() if tri[2]**2 == (tri[0]**2 + tri[1]**2): print("right") else: print("wrong")

[Python]BaekJoon.AC 2022.01.04

[Python]백준 BaekJoon.AC 1085 : 직사각형에서 탈출(min())

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net x, y, w, h = map(int, input().split()) print(min(min(x, w-x), min(y, h-y)))

[Python]BaekJoon.AC 2022.01.04

[Python]백준 BaekJoon.AC 1546 : 평균(list, sort())

https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net N = int(input()) scores = list(map(int, input().split())) scores.sort(reverse=True) M = scores[0] sum = 0 for x in scores: sum = sum + (x / M * 100) print(sum/N)

[Python]BaekJoon.AC 2022.01.03

[Python]백준 BaekJoon.AC 1157 : 단어 공부(딕셔너리, sorted())

https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 단어개수에 따라 내림차순으로 정렬하고 싶었는데, 가장 큰 수의 스펠링을 알아내기 위해 딕셔너리를 사용했다. 딕셔너리를 처음 사용해봤는데, 이것도 신기하면서도 편리하다.. 앞서 배웠던 find()에서 착안해 count()를 사용해 알파벳마다 해당하는 단어 개수를 넣어줬다. sorted()를 이용해 내림차순으로 정렬하고(sort 함수는 사용할 수 없었다. 딕셔너리 안받아줌..), 리스트가 되어버린 newD를 이차원 리스트 취급...?..

[Python]BaekJoon.AC 2022.01.03

[Python]백준 BaekJoon.AC 10809 : 알파벳 찾기(find())

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 파이썬은 확실히 내장함수가 너무 잘 되어있는 것 같다. 20가지가 넘는 알파벳 배열을 어떻게 대체해야 하나 고민하고 있었는데,, 그냥 String 입력 받아 그대로 list함수에 넣어주면 끝나는 문제였다. 그리고 find()를 사용한다면 입력받은 단어 스펠링이 몇 번째 알파벳인지 쉽게 파악할 수 있었다. 파이썬 맞춤 문제가 아니었을까..? for문으로 하나하나 찾을 생각하고 있었는데...

[Python]BaekJoon.AC 2022.01.03
728x90