분류 전체보기
[프로그래머스]K번째수-정렬
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 함수
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 함수
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 함수
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
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
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]스타크래프트
자바 언어를 활용하여 스타크래프와 비슷한 기능을 하는 프로그램을 제작해보았다. 프로그램은 아래의 형태와 같은 구조를 지닌다. 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..
[프로그래머스]체육복-그리디
체육복 문제 코드 def solution(n, lost, reserve): set_reserve = set(reserve)-set(lost) set_lost = set(lost)-set(reserve) for i in set_reserve: if i-1 in set_lost: set_lost.remove(i-1) elif i+1 in set_lost: set_lost.remove(i+1) return n-len(set_lost) 코드 설명 먼저 set(집합) 함수를 활용하여 여유 분이 있는 학생들 중에서 잃어버린 경우를 계산하여 체육복 수를 갱신하여 줍니다. 그 후, 잃어버린 학생들 집합에서 여유 분이 있는 학생들 집합을 빼주어 진짜로 잃어버려서 빌려야 하는 학생들만을 집합으로 남겨두고 갱신한다. 여유 ..
[코드업 기초 100제]1096~1099 번 문제 풀이
1096번 a=int(input()) arr=[[0]*19 for i in range(19)] //이차원 배열 생성 for x in range(a) : //입력된 횟수 만큼 반복문 수행 a, b = map(int, input().split()) //좌표 위치 저장 arr[a-1][b-1]=1 //좌표 위치의 배열을 1로 할당, 배열 인덱스 0 부터 시작이라 -1씩 줌 for i in arr : //배열 만큼 반복 for j in i : //리스트 안의 값을 뽑아냄 print(j, end=' ') print() //줄바꿈 1097번 arr = [[0]*19 for x in range(19)] //이차원 배열 생성 for i in range(19) : //주어진 배열 input값 할당하는 반복문 a = li..