[프로그래머스]H-Index-정렬
·
SW개발/코딩테스트
def solution(citations): citations.sort() for i in range(len(citations)): if citations[i] >= len(citations)-i: return len(citations)-i return 0 코드 설명 먼저 citations 리스트를 정렬을 해줌으로써 인용된 횟수를 오름차순으로 정렬합니다. 그 후 citations 리스트의 길이만큼 반복문을 수행하고 만약 논문에 인용된 횟수가 논문의 수 - i 라면 논문의수 - i 를 return 합니다. 만족하지 못한다면 0을 리턴하여 줍니다. Point : 오름차순 정렬을 통하여 가장 적은 인용 횟수를 맨 앞으로 배치하여 줍니다. 이를 통하여 불필요한 반복문을 없앨 수 있습니다. 이 문제에서 가장 중요..
[프로그래머스]가장 큰 수-정렬
·
SW개발/코딩테스트
def solution(numbers): numbers = list(map(str, numbers)) # x*3을 기준으로 하여 정렬한다. # 기준을 삼는 것이기 때문에 실제로 정렬되는 데이터는 *3이 된 것이 아니다. numbers.sort(key = lambda x: x*3, reverse=True) return str(int(''.join(numbers))) 코드 설명 먼저 입력받은 numbers 리스트를 map() 함수를 통하여 전부 str 형으로 바꿔준다. map object가 되기 때문에 list() 함수를 통하여 리스트 형으로 다시 변환시켜준다. sort() 함수의 key 인자 값을 활용(key 를 기준으로 하여 리스트로 정렬함)하여 내림차순 정렬을 해준다. join 함수를 활용하여 리스트를..
[프로그래머스]K번째수-정렬
·
SW개발/코딩테스트
def solution(array, commands): answer = [] for i in commands: temp = array[i[0]-1:i[1]] temp.sort() answer.append(temp[i[2]-1]) return answer 코드 설명 commands 리스트 안에서 for 반복문을 돌려 commands[i][0:2] 에 해당하는 원소들을 리스트로서 접근하여 temp 리스트에 (i ~ j 번째를 자른 결과) 넣어준다. 그 후 정렬을 하고 정렬된 리스트의 i[2]-1 인덱스(k를 의미함)에 접근하여 answer 리스트에 원소를 추가하여 준다. Point : 파이썬에는 내장 정렬 함수인 sort(), sorted()가 존재하기에 이를 활용하면 정렬을 위한 코드를 작성하지 않아도 된..
[Python]split, join 함수
·
SW개발/Python
split() 함수 -> 문자열을 나누기 위해 사용한다. 사용법 바꾸고싶은문자열.split(인자) 예시 result = 'How are you?'.split() print(result) 결과 : ['How', 'are', 'you?'] 위와 같이 공백을 기준으로 문자열을 나눌 수 있다. 공백이 아닌 다른 구분자를 이용하려면 split(',') 처럼 사용해주면 된다. 바꾸고 싶은 문자열에도 변수/문자열 모두 다 사용이 가능하다. join 함수 -> 문자열을 결합하기 위해 사용한다. 사용법 '원하는기준'.join(바꾸고 싶은 문자열/변수) 예시 example = ['a', 'b', 'c'] ','.join(example) print(example) 결과 : 'a,b,c' '_'.join(example) 로 ..
[Python]lambda 함수
·
SW개발/Python
lambda 란? 람다는 런타임에 생성해서 사용할 수 있는 익명 함수다. 쓰고 버리는 일회용 함수라고 생각하면 된다. 사용 방법 lambda 인자 : 표현식 예시 >>> def hap(x, y): ... return x + y ... >>> hap(10, 20) 30 위와 같은 함수를 labmda를 이용 하면 아래와 같이 변경할 수 있다. >>> (lambda x,y: x + y)(10, 20) 30 또한, lambda를 변수에 할당하여 재사용 할 수도 있다. lambda의 활용 방법 map 함수에서의 활용 -> map 함수는 함수와 리스트를 인자로 받는다. 이를 간략하게 하기 위하여 lambda 를 사용할 수 있다. >>> list(map(lambda x: x ** 2, range(5))) # 파이썬 ..
[Python]map, filter 함수
·
SW개발/Python
map 내장 함수 파이썬의 내장 함수인 map() 는 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해서 사용한다. 따라서, 여러 개의 데이터를 담고 있는 list 나 tuple 을 대상으로 주로 사용한다. 사용 방법 map(변환 함수, 변환할 데이터) map() 함수는 두번째 인자로 넘어온 데이터가 담고 있는 모든 데이터에 첫번째 인자의 변환 함수를 적용하여 다른 형태의 데이터를 반환한다. 예시 >>> a = map(int, input().split()) 10 20 (입력) >>> a >>> list(a) [10, 20] 위와 같이, map 함수를 적용할 경우 map object로 return 되므로, list() 나 tuple() 을 사용하여 변환 후 사용해 주는 것이 일반적이다. filter ..
[프로그래머스]네트워크-DFS/BFS
·
SW개발/코딩테스트
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr DFS 알고리즘 이용 def solution(n, computers): visited = [0 for _ in range(n)] cnt = 0 def dfs(visited, i): visited[i] = True for j in range(n): # 컴퓨터가 연결되어 있고, 방문하지 않은 곳이라면 방문 if computers[i][j] == 1 and no..
[프로그래머스]타겟넘버-DFS/BFS
·
SW개발/코딩테스트
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr DFS 알고리즘 이용 # DFS 알고리즘 이용 def solution(numbers, target): cnt = 0 def dfs(level, sum): # 주어진 수를 모두 이용했을때 if level == len(numbers): # 더한 최종 값이 target과 같다면 if sum == target: no..
[JAVA]스타크래프트 프로그램
·
SW개발/JAVA
아래의 사진과 같이 동작하는 것을 알 수 있다.
[JAVA]스타크래프트
·
SW개발/JAVA
자바 언어를 활용하여 스타크래프와 비슷한 기능을 하는 프로그램을 제작해보았다. 프로그램은 아래의 형태와 같은 구조를 지닌다. Game 클래스 import java.util.Scanner; public class Game { static int people = 0; //현재 인구수. static int people_limit = 10; //제한 인구수.(총 200까지 늘어남) public static void main(String[] args) { Scanner sc = new Scanner(System.in); int select; int build; CommandCenter c = new CommandCenter(); //객체 생성. SupplyDepot s = new SupplyDepot(); Bar..