728x90

2022/01 56

[Python]백준 BaekJoon.AC 1436 : 영화감독 숌(브루트포스, find())

https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 브루트포스 알고리즘이란 확신이 없었을 땐 이런 저런 구상들을 해봤는데, 아무리 생각해도 하나씩 카운트 해주는게 신속정확할 것 같았다. 1씩 늘려주는 변수 num을 처음부터 666으로 설정한 이유는, 666이 조건을 만족하는 첫 숫자이기 때문이다. (1~665)는 시간낭비가 확실하니 666을 처음으로 뒀다. while문을 사용했고, num을 1씩 증가시켜주며 666이 포함된 숫자인지 체크한다. 이..

[Python]BaekJoon.AC 2022.01.11

[Python]백준 BaekJoon.AC 1181 : 단어 정렬(sort())

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 정렬을 정식으로 접해봤다. 나름 쉽고 간편하다.. 리스트에 단어들을 넣어주고, set을 이용해 중복을 제거해줬다. 그리고 sort를 이용해 정렬을 시도했다. 리스트 항목의 길이를 최우선으로 뒀고, 사전식 배열을 다음 순위로 설정했다. 괄호 안에 순서대로 넣으면 된다. 굿! N = int(input()) words = [] for i in range(N): words.append(inpu..

[Python]BaekJoon.AC 2022.01.11

[Python]백준 BaekJoon.AC 1018 : 체스판 다시 칠하기(list, for문)

https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net string 문자열을 그냥.. st = "abcd"로 선언하고 st[1]을 프린트하면 b가 출력되더라...? 2차원 배열을 리스트로 어떻게 구현해야 할까 고민했는데 그냥 리스트에 문자열을 통채로 넣으면 되는 거였다. 그 자체가 2차원 리스트라 말할 수 있다. 대신 특정 방법을 사용하지 않는 한 수정은 안되는 듯 하다. 너무 신기하고 기특한 파이썬...!ㅋㅋ 더 간추리는 방법이 있지만 가독성..

[Python]BaekJoon.AC 2022.01.10

[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

[Python]백준 BaekJoon.AC 2869 : 달팽이는 올라가고 싶다(ceil())

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 문제가 요구하는 방식 그대로, 달팽이의 행적을 쫒아... 코드를 작성했는데. 아무리 기다려도 예제3번 답 출력이 안되는 것....? 더보기 A, B, V = map(int, input().split()) high = 0 days = 1 while True: high = high + A if V

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