본문 바로가기

전체 글229

[백준] 1026번 보물(with python) https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 내가 작성한 코드 n = int(input()) a = sorted(list(map(int, input().split())),reverse=True) b = sorted(list(map(int, input().split()))) for i in a: if i == 0: a.remove(0) a.append(0) print(sum(list(map(lambda x,y : x * y, a,.. 2023. 1. 31.
[프로그래머스] Level1 서울에서 김서방 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/12919 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(seoul): for i in range(len(seoul)): if seoul[i] == "Kim": return f'김서방은 {i}에 있다' for문으로 kim을 찾고, formating 해주었다. 2. 다른 코드 def solution(seoul): return "김서방은 {}에 있다".format(seoul.index('Kim')) index .. 2023. 1. 31.
#2 lambda 함수 1. lambda 함수란 ? 익명함수 즉, 함수의 이름 없이 선언이 가능한 함수이다. lambda x: x + 10 #호출 불가능 a = (lambda x: x*x) #변수에 할당해 줌으로써 호출 가능 a(1) (lambda x: x+10)(1) #괄호를 이용하면 람다표현식 자체 호출 가능 위의 코드와 같이 lambda를 호출하기 위해서는 변수에 할당을 해주거나, (람다식)(인수) 의 형태로 작성해주어야 한다. 2. map() map() 함수를 이용해 리스트의 요소를 하나씩 꺼내 함수에 넣고, return 값으로 새로운 리스트를 만들어 줄 수 있다. a = [1,2,3] list(map(lambda x: x+10, a)) #[11,12,13] 3. filter() filter() 함수를 통해 리스트 요소.. 2023. 1. 31.
[프로그래머스] Level1 문자열 내 마음대로 정렬하기(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 꽤 많은 시간 고민을하다가 solution 이 명확하게 떠오르지 않아 구글링,, lambda(익명함수)에 대해 새롭게 알게됐다. 1. 해답 def solution(strings, n): return sorted(strings, key = lambda x: (x[n], x)) lambda에 대해서 잘 몰라서,, 봐도 모름,, lambda 특강 들어갑니다. 2023. 1. 31.
[프로그래머스] Level1 문자열 내 p와 y의 개수(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12916 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): s = s.upper() if s.count('P') != s.count('Y'): return False else: return True return s.count('P') == s.count('Y') 라고 코드를 적을 경우 맞으면 True, 틀리면 False 값을 반환하기 때문에 if문을 적을 필요가 없다. 프로그래머스에서 숏코딩이 뭔지 배.. 2023. 1. 30.
[프로그래머스] Level1 문자열 내림차순으로 배치하기(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(s): s = sorted(s, reverse=True) answer = '' for i in s: answer+=i return answer 나는 for문을 이용했는데, join 함수를 쓰면 더욱 간단하게 해결할 수 있다. def solution(s): return ''.join(sorted(s, reverse=True)) 2023. 1. 30.
[프로그래머스] Level1 같은 숫자는 싫어(with python) https://school.programmers.co.kr/learn/courses/30/parts/12081 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(arr): answer = [] answer.append(arr[0]) for i in range(len(arr)-1): if arr[i] == arr[i+1]: pass else: answer.append(arr[i+1]) return answer 문자열을 비교하며 새로운 list에 삽입하는 방식으로 문제를 해결했다. 풀긴 했지만 이 문제의 중분류는 '.. 2023. 1. 29.
[백준] 10828번 스택(with python) https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 1. 내가 작성한 코드 import sys n = int(sys.stdin.readline()) stack = [] for i in range(n): word = sys.stdin.readline().split() if word[0] == 'push': stack.append(word[1]) elif word[0] == 'pop': if len(stack) > 0: print(s.. 2023. 1. 29.
[프로그래머스] Level1 두 정수 사이의 합(with python) https://school.programmers.co.kr/learn/courses/30/lessons/12912 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 내가 작성한 코드 def solution(a, b): result = 0 if a > b: a, b = b, a for i in range (a,b+1): result += i return result a,b의 대소관계가 정해지지 않았으므로 if문을 통해 정해준다. 이후 result에 더해주면 된다. 또한 for문을 이용하지 않고, return sum(range(a,b+1)) 식을 이용해도 .. 2023. 1. 29.