본문 바로가기

전체 글165

[백준/Python] 5073번 삼각형과 세 변 문제 ■ 5073번 삼각형과 세 변 문제 ■ 코드 풀이 주의할 점은 두 가지입니다. 첫 번째, 주어진 값이 삼각형의 조건을 충족하는지를 가장 먼저 검사해야 합니다. 두 번째, 삼각형이라면 정삼각형인지, 이등변 삼각형인지 순으로 검사해야 합니다. 그렇지 않으면 위에서부터 아래로 실행하는 프로그래밍 언어 특성상 에러가 발생할 수 있습니다. while True: length = list(map(int, input().split())) if length[0] == length[1] == length[2] == 0: break max_value = length.pop(length.index(max(length))) if max_value >= length[0] + length[1]: print("Invalid") co.. 2023. 4. 23.
[백준/Python] 10101번 삼각형 외우기 문제 ■ 10101번 삼각형 외우기 문제 ■ 코드 풀이 이 문제에서 중요한 포인트는 조건의 순서입니다. 정삼각형은 'Equilateral'로 출력되어야 하지만, 이등변 삼각형 조건을 먼저 작성했다면 정삼각형이어도 'Isoscles'로 출력될테니까요. 그래서 가장 먼저, 세 각의 합이 180도인지를 확인하고 그 다음으로 정삼각형인지, 이등변 삼각형인지를 확인해야 합니다. A = int(input()) B = int(input()) C = int(input()) if (A+B+C) == 180: if (A==60) & (B==60): print('Equilateral') elif (A==B) | (B==C) | (A==C): print('Isosceles') else: print('Scalene') else: p.. 2023. 4. 22.
[백준/Python] 9063번 대지 문제 ■ 9063번 대지 문제 ■ 코드 풀이 대지 문제의 아이디어는 간단합니다. 직사각형을 이루는 네 개의 좌표는 수많은 x와 y의 값들 중에서 min, max값으로만 구성됩니다. 따라서 set을 활용하여 풀 수 있습니다. x와 y의 좌표를 set을 이용하여 저장하고 그 값 중에서 min, max값만 활용합니다. 물론 점이 1개이면 해당되지 않으므로 if문으로 해당 경우를 걸러줍니다. N = int(input()) x_set = set() y_set = set() if N == 1: print(0) else: for i in range(N): x, y = map(int, input().split()) x_set.add(x) y_set.add(y) print((max(x_set) - min(x_set)) * (.. 2023. 4. 21.
[백준/Python] 15894번 수학은 체육과목 입니다 문제 ■ 15894번 수학은 체육과목 입니다 문제 ■ 코드 풀이 코딩을 하려고 왔는데, 등차수열 문제를 풀 줄은 상상도 못 했습니다. 이 문제는 등차수열을 안다면 쉽게 풀 수 있는 문제입니다. 우선 실선, 점선 상관없이 정사각형 전체 둘레는 정사각형의 개수 * 4입니다. 정사각형의 개수는 1,2,3,4,... 씩 증가하므로 n번째 줄까지의 정사각형 개수는 첫째항이 1이고 마지막항이 n인 등차수열의 합입니다. 실선의 둘레는 전체 둘레에서 점선 둘레를 빼주면 됩니다. 점선(T자) 주위로 3개의 정사각형이 있고, 각각 맞닿은 부분이 2번씩 중복되므로 점선(T자) 1개의 둘레는 4입니다. 따라서 점선의 둘레는 점선의 개수 * 4입니다. 이때, 점선은 정사각형의 개수보다 1개 적습니다. 따라서 n번째 줄까지의 점선 개.. 2023. 4. 20.
[백준/Python] 3009번 네 번째 점 문제 ■ 3009번 네 번째 점 문제 ■ 코드 풀이 직사각형의 네 변이 각 축과 평행하기 위해서는 동일한 x 좌표와 y 좌표가 2개씩 있어야 합니다. 실제 좌표 평면에 직사각형을 그려보시면 이해가 되실겁니다. 따라서 네 번째 점을 구하기 위해서는 x와 y 좌표 중, 값이 1개만 있는 좌표를 조합하여 출력하면 됩니다. 아래 코드는 먼저 x와 y 값을 입력받고, set을 활용하여 list의 unique 값에 대해 count로 위의 내용을 구현한 코드입니다. x_list = [] y_list = [] for i in range(3): x,y = map(int, input().split()) x_list.append(x) y_list.append(y) unique_x = list(set(x_list)) unique_.. 2023. 4. 19.
[백준/Python] 1085번 직사각형에서 탈출 문제 ■ 1085번 직사각형에서 탈출 문제 ■ 코드 풀이 좌하단이 (0,0)이고 우상단이 (w, h)인 직사각형 경계가 있습니다. 직사각형 안에 점 (x, y)가 있을 때, 점부터 직사각형 경계까지 가장 가까운 거리는 직선거리입니다. 직선거리는 상, 하, 좌, 우 4가지가 있습니다. 그중 왼쪽과 아래쪽 거리는 (x, y) 좌표 그 자체입니다. 따라서 위쪽과 오른쪽까지의 경계만 구하고 4가지 값 중 최솟값을 출력하면 됩니다. x,y,w,h = map(int, input().split()) ceiling = h-y wall = w-x print(min(x,y,ceiling,wall)) 2023. 4. 18.