전체 글 1851

[백준] #2477 참외밭 python

https://www.acmicpc.net/problem/2477 2477번: 참외밭 첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지 www.acmicpc.net 📕 설명 📕 가장 큰 직각 사각형에서 작은 직각 사각형의 넓이를 알아내어 풀이하였다. 1. 직사각형을 나누어 두 가지로 분리하여 넓이를 구한다. 2. 큰 직사각형에서 작은 직사각형의 넓이를 빼어 넓이를 구한다. 두 가지 방법 중, 2번 방법으로 코드로 구현할 수 있을 것 같았다. 방향과 길이를 담은 list를 각각 만들고, 각 방향에 대해 방향이 1번 나오게 되면 그것은 큰 직사각형의 한 변의 ..

[백준] #4153 직각삼각형 python

https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 📕 설명 📕 피타고라스 성질을 이용하여 가장 큰 변의 길이를 구하고, right or wrong을 출력한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 result = [] while True: a,b,c = map(int,input().split()) if a == 0 and b == 0 and c == 0: break if a > b > c or a > c > b: length_max = pow(a, 2) length_1 =..

[백준] #3009 네 번째 점 python

https://www.acmicpc.net/problem/3009 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 📕 설명 📕 Counter를 사용하여 개수가 1개 사용된 것이 사용되지 않은 좌표의 각각의 값임을 이용하여 풀이하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 from collections import Counter C_x = [] C_y = [] for _ in range(3): x,y = map(int,input().split()) C_x.append(x) C_y.append(y) C_X = Counter(C_x) C_Y = Counter(C_y) x = '' y = '' for i ..

[백준] #1085 직사각형에서 탈출 python

https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램 www.acmicpc.net 📕 설명 📕 좌표에서 6가지 경우의 수를 고려하여 최솟값을 찾는다. 좌표에서 x,y축으로 가는 값, 오른쪽 위 좌표와의 축으로 가는 값, 그리고, 각각의 좌표축으로 가는 값이다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 x, y, w, h = map(int, input().split()) min_val_list = [] min_val_list.append(x) min_val_list.app..

[백준] #11478 서로 다른 부분 문자열의 개수 python

https://www.acmicpc.net/problem/11478 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 📕 설명 📕 itertools의 combinations를 사용하여 해결하였다. 이 경우, 여러 부분집합들이 연속된 string 에 포함되어야 하는데, 순서가 중요해진다. 이를 고려하여, str에 저장하여 풀이하였더니, 메모리 초과가 떴다. 그래서 join함수를 이용하여 다음과 같이 풀이하였더니 시간 초과가 발생하였다. from itertools import combinations S = input() result = 0 for i in range(len(s)): f..

[백준] #1269 대칭 차집합 python

https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 📕 설명 📕 집합 A, B의 차집합을 각각 뺀 길이를 더한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 A, B =map(int ,input().split()) A_set = set(map(int, input().split())) B_set = set(map(int, input().split())) print(len(A_set- B_set) + len(B_set - A_set))

[백준] #1764 듣보잡 python

https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 📕 설명 📕 Counter를 이용하여 개수를 세어 리스트에 담아서 출력하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 from collections import Counter N, M =map(int ,input().split()) i_cant_listen = [] i_cant_see = [] for i in range(N): i_cant_listen.append(input()) for i in range..

[미움 받을 용기] 2022.12.30.

소크라테스나 아들러는 저술활동에는 관심이 없었다. 소크라테스와 아들러는 그저 여러 모임에서 자신의 이야기를 펼치고 토론을 즐기던 사람이었다. 그래서 소크라테스의 이야기는 제자인 플라톤에 의해 글로 남겨지게 되었고, 대부분 이야기, 사람과 사람 간의 대화를 통해 진리를 깨닫기 바라던 사람들이었다. 이러한 부분을 참작하여 대화의 기술을 더 깊게 익히기로 하였다. 사람과의 대화를 통해 그 사람을 알 수 있듯이, 더 많은 대화를 하고싶다. 그리고 더 많이 배우고 싶다. 오늘 배운 내용은 '목적록'에 대한 더 많은 내용과, 어떻게 과거에 의미를 부여하여 더 나은 부분으로 나아갈 수 있는가 하는 것이다. 아들러의 말을 인용한다. "중요한 것은 무엇이 주어졌느냐가 아니라 주어진 것을 어떻게 활용하느냐 이다." 그러므..

Reading 2022.12.30

[백준] #10816 숫자 카드 2 python

https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 📕 설명 📕 1. N개의 숫자에 대해 dictionary에 넣어서 개수를 추가한다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N = int(input()) N_list = list(map(int,input().split())) N_dict = {} for i in N_list: if i not in N_dict: N_dict[i] = 1 else: N_dict[i] += 1 ..

[백준] #1620 나는야 포켓몬 마스터 이다솜 python

https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 📕 설명 📕 1. N개의 포켓몬 도감을 set에 넣는다. 2. 문제들을 받는다. 3. 문제를 순회하며 포켓몬 도감에서의 값을 가져온다. => 계속된 시간 초과를 해결하기 위하여 dictionary를 하나 더 만들어서 해결하였다. 🧑🏻‍💻 나의 풀이 🧑🏻‍💻 N, M = map(int ,input().split()) pokemon_encyclopedia_id = {} p..