728x90

Python 72

[Python]백준 BaekJoon.AC 11050 : 이항 계수1(for문)

https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이항계수를 설명하고 싶지만... 수학문제는 풀어도 용어는 잘 몰라서...;;ㅋㅋ 이항식을 풀어냈을 때..? 문자 앞에 붙은 숫자.. 계수..?를 구하기 위해 콤비네이션을 사용하는데, 우리나라는 그냥 콤비네이션을 사용하면 이항계수를 구할 수 있다고 가르쳐준다! 결과우선주의는 효율적이다. 하지만 나에겐 이항계수를 설명할 능력이 없어 이 정도로 부연설명을 마친다.. 더 깔끔한 코드를 고민했지만 문제의 조건범위가 좁고 자칫 난해할 것 같아 직관적으로 구현했다. 다만 N!/K!을 ..

[Python]BaekJoon.AC 2022.01.09

[Java]백준 BaekJoon.AC 1967 : 트리의 지름 (dfs, Tree)

https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 파이썬 다시 시작한지 얼마 안돼 헷갈리기도 했고... 감 잃을까봐 오랜만에 자바를 해봤다. BufferedReader문장 기억 안나서 너무 당황스러웠다ㅋㅋㅋㅋㅋ(웃다보니 웃을 일이 아님) 심지어 다른 것도 기억이 안나서..(코쓱 IntelliJ로 프로그램 바꾸고 처음한 코딩이라 낯선 것도 있었지만 그새 까먹은건 분명했다..ㅋㅋㅋ;; 그래도 파이썬 할 때도 나왔던 자바 습관은 여..

[Java]BaekJoon.AC 2022.01.09

[Python]백준 BaekJoon.AC 2839 : 설탕 배달(for문, if문, reversed())

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 마음과 달리 조금 복잡한 코드가 나왔다... 그냥 while문을 돌리는게 나았을 것 같기도 하다. 처음 N값을 5로 나눠 if문을 돌린 이유는, N이 4미만인 경우를 걸러내기 위해서다. 그 와중에도 3키로일 수도 있으니 if를 한 번 더 사용해줬다. 그 후부턴 N을 5로 나눈 몫으로 for문을 돌려줬다. 0

[Python]BaekJoon.AC 2022.01.07

[Python]백준 BaekJoon.AC 1259 : 팰린드롬수(slice)

https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 파이썬 기능을 이용한다면 그렇게 어렵지 않은 문제였다. slice를 이용해 문자열을 뒤집어 비교했다. while True: st = input() if st == "0": quit() rever = st[::-1] if st == rever : print("yes") else: print("no")

[Python]BaekJoon.AC 2022.01.06

[Python]백준 BaekJoon.AC 15829 : Hashing(ord(), 아스키코드)

https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 모듈러 개념을 제대로 몰라 힘들었던 기억이 있는 문제다. 며칠을 끙끙대며 풀었는데.. 요번엔 곧잘 풀어내서 그래도 실력이 조금은 늘었나 싶다. 장황하게 설명을 해뒀지만 결국 아래식을 코드로 구현해내란 뜻이다. 우선 소문자 알파벳을 리스트로 받아줬다. for문을 이용해 이 리스트들을 하나씩 꺼내 아스키코드로 변환해주고, 96을 빼 1부터 26까지의 숫자로 만들어준다. (a의 아스키코드가 97이기 ..

[Python]BaekJoon.AC 2022.01.06

[Python]백준 BaekJoon.AC 2798 : 블랙잭(브루트포스 알고리즘)

https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net card 리스트에 카드 정보들을 넣어주고, 첫번째 카드를 뽑는 for문(i) 두번째 카드를 뽑는 for문(j) 세번째 카드를 뽑는 for문(l)을 만들어준다. 여기서 포인트는 각 for문의 범위다. 두번째 카드와 세번째 카드의 시작점을 직전에 뽑은 카드의 다음 카드로 설정해줬다. 끝점은.. 만약 첫번째 for문의 끝점이 N이고 N-2번 카드를 뽑았다면, 두번째 카드..

[Python]BaekJoon.AC 2022.01.06

[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
728x90