본문 바로가기

ALGORITHMS14

[백준:JAVA] 단어수학 목차 문제링크 : https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 : # 1339_단어수학 *** ## 문제 설명 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 .. 2023. 5. 23.
[백준:PYTHON] 단어 수학 목차 문제링크 : https://www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 : # 1339_단어수학 *** ## 문제 설명 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 .. 2023. 5. 23.
[백준] 1004_어린왕자 목차 🔐문제 풀이 시행착오 두 점 간의 거리 구하는 공식은 다음과 같다 이 공식을 응용하여 문제를 풀었다. - 만약 두 점 사이의 거리가 반지름 보다 작다면, 점이 원 안에 포함되어 있다 - 따라서, 거리가 반지름 보다 작다면 cnt를 중가시켜, 총 개수를 구한다 - point 0과 point1, point2와 point3은 세트 이므로, 다음과 같이 작성한다 import sys def isIn(points , x,y,r): cnt = 0 for i in range(0,4,2): #0,2 if ((points[i]-x)**2 + (points[i+1]-y)**2) 2023. 2. 20.
[프로그래머스] 3진법 뒤집기 목차 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [ 풀이과정 (로직) ] - 3진법으로 변경 후, 리스트에 추가 -> 10진법으로 변경한다 - 3진법으로 변경시, n을 3으로 나누고 난 나머지를 리스트에 추가 - 가장 나중에 나온 값이 리스트의 0번째 값이 되므로, reverse를 해줄 필요는 없겠다 [ Solution 1 ] def solution(n): result , target = 0, 3 lst = [] # 3진법 구화기 while(n): lst.append( n%target ) n = n//3 # 10 진법으로 변경 for i in rang.. 2023. 1. 1.
약수 효율적으로 찾기 목차 모든 경우를 탐색 : O(N) def getDiv(num): lst = [] for i in range(1,num+1): if num % i ==0 : lst.append(i) return lst print(getDiv(100)) # [1, 2, 4, 5, 10, 20, 25, 50, 100] 위의 코드의 경우 1부터 100까지 하나하나 비교하여 약수를 찾는다. 만약 1억의 약수를 구하고자 한다면, 1억 번을 반복해야 한다. 시간 복잡도가 O(N) 이기 때문에 수가 커질 수록 런타임 초과 오류 발생 확률이 높아진다. 효율적 탐색 : O(√N) 1부터 √N까지 수 중 나누어 떨어지는 수를 찾고, N을 해당 값으로 나눈다 만약 100의 약수를 구한다면, √100 = 10이므로, 100은 1.. 2022. 11. 23.