본문 바로가기
728x90
반응형

분류 전체보기510

[프로그래머스] 삼총사 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 간단하게 반복문 3개를 활용하여 배열에서 각 수를 더해 합이 0이 나오면 삼총사이다. 반복문 3개를 만든다. 각 반복문의 시작은 바깥 반복문의 바로 다음 값으로 지정한다. for i in range(len(number)): for j in range(i + 1, len(number)): for k in range(j + 1, len(number)) 만약 세 값을 더했을 때 그 합이 0이면 삼총사이다. if (number[i] + number[j] + number[k] == 0):.. 2023. 7. 7.
[백준] 1260번 : DFS와 BFS - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1. 문제 설명 2. 풀이과정 리스트를 만들어 각 정점의 값을 [False]로 설정한 뒤, 탐색한 정점을 True로 바꾸면서 모든 정점의 값이 True가 될 때까지 탐색한다. DFS는 재귀 알고리즘을 사용하여 계속적으로 정점에 이어진 정점을 탐색하고 탐색할 정점이 없다면 다음 정점으로 넘어가 탐색을 계속한다. BFS는 deque을 사용하여 정점에서 연결된 모든 정점을 탐색하고 연결된 정점 중 가장 작은 정점으로 넘어가 탐색을.. 2023. 7. 6.
[프로그래머스] 피보나치 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 초기 피보나치 수 0번째 값과 1번째 값을 저장한 리스트를 생성한다. F = [0, 1] 피보나치 수를 만들 위치 값을 가진 변수를 생성하고 다음 위치인 2로 초기화한다. i = 2 원하는 지점에서 멈추기 위해 반복문을 활용한다. while (True) 피보나치 수 리스트에 다음 값(이전 값과 그전 값을 더한 값)을 추가한다. F.append(F[i - 2] + F[i - 1]) 만약 피보나치 수 위치가 입력받은 값과 동일하다면 if (i == n) 해당 피보나치 수를 12345.. 2023. 7. 6.
[프로그래머스] 다음 큰 숫자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 다음 큰 수를 찾기 위해 입력받은 다음 수를 저장한다. num = n + 1 입력받은 수를 2진수로 바꾼 결과를 저장할 리스트를 생성한다. li = list() 입력받은 수가 0이 될 때까지 반복한다. while (n != 0) 2로 나눈 나머지를 리스트에 추가한다. li.append(n % 2) 2로 나눈 몫을 새롭게 저장한다. n //= 2 다음 수의 2진수 변환 결과를 저장할 리스트를 생성한다. li2 = list() 두 2진수의 결과 리스트의 1의 개수가 같을 때까지 반복.. 2023. 7. 6.
[프로그래머스] 숫자의 표현 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 1부터 입력받은 수까지 자연수를 원소로 하는 배열을 생성한다. li = list(range(1, n + 1)) 슬라이싱을 활용하여 연속된 자연수를 추출한다. 슬라이싱에 사용할 시작 위치와 종료 위치의 값을 반복문을 활용해 지정해 준다. 시작 위치는 처음부터 끝까지이고 for i in range(n + 1) 종료 위치는 시작 위치 다음부터 배열의 끝까지의 범위로 지정한다. for j in range(i + 1, n + 1) 만약 지정한 슬라이싱의 합이 입력받은 수이면 if (sum.. 2023. 7. 6.
[프로그래머스] 예산 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 신청한 금액이 적은 부서부터 지원을 해줘야 최대한 많은 부서를 지원해 줄 수 있다. 그래서 입력받은 부서별 신청 금액 배열을 오름차순으로 정렬해 준다. d.sort() 정렬한 배열을 앞에서부터 하나씩 원소를 추출한다. for i in d 만약 추출한 원소의 값이 예산보다 작으면 if (budget >= i) 예산에서 추출한 원소의 금액만큼 빼준다. budget -= i 부서 1개를 지원해 주었으므로 지원해 준 부서 개수를 1 증가시킨다. answer += 1 3. 소스코드 def.. 2023. 7. 6.
[프로그래머스] 이상한 문자 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받는 문자열 s의 양쪽에도 공백문자가 존재할 수 있으므로 각 단어를 공백으로 분리한 후 각 단어를 변환시켜 결합하는 것은 반례가 생길 수 있다. 따라서 입력받은 문자열을 그대로 사용하며 변환하는 방법으로 문제를 해결했다. 단어의 문자 위치를 나타낼 변수를 선언하고 초기화한다. index = 0 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s 만약 추출한 문자가 공백이면 if (i == ' ') 결과에 그대로 공백을 추가하고 answer += i 기존 단어의 .. 2023. 7. 6.
[자바(Java) 공부하기] 6. 입력하기 - 우당탕탕 개발자 되기 프로젝트 자바에서 입력하는 방법에는 System.in.read() 함수로 입력받는 방법이 있습니다. 변수를 생성해 주고 해당 변수에 함수를 대입해 주면 해당 변수에 입력이 받아집니다. 프로그램을 실행하고 값을 입력한 뒤에 Enter을 누르면 입력이 완료됩니다. System.in.read() 함수로 입력을 받게 되면 키코드를 하나씩 읽기 때문에 2개 이상이 조합된 한글(2byte)은 읽을 수가 없고 문자 하나씩만 입력받을 수 있기 때문에 문자열은 입력받을 수 없습니다. 또한 System.in.read() 함수를 사용하기 위해선 main 함수에 throws IOException을 추가로 적어주어 System.in.read() 함수에 대한 예외 처리를 해줘야 합니다. 이러한 System.in.read() 함수의 단점을.. 2023. 7. 5.
[자바(Java) 공부하기] 5. 문자열 - 우당탕탕 개발자 되기 프로젝트 자료형을 공부할 때 배우지 않았던 문자열에 대해 알아보겠습니다. char 타입의 데이터는 작은따옴표(')로 감싼 문자이고, 문자열은 큰따옴표(")로 감싼 여러 개의 문자들입니다. 문자열을 저장할 때는 String 타입을 사용하면 됩니다. String 변수명 = "문자열"; 형식으로 작성하면 문자열의 값을 갖는 문자열형 변수가 생성되고 초기화됩니다. 추가로 이스케이프 문자에 대해서 간단히 살펴보자면, 이스케이프 문자는 역슬래시(\)가 붙은 문자를 말합니다. 이스케이프 문자를 사용하면 문자열 내부에 특정 문자를 포함시킬 수 있습니다. 이스케이프 문자에는 \t (tab), \n (줄 바꿈), \" (문자열 안에 " 문자 넣기), \' (문자열 안에 ' 문자 넣기), \\ (문자열 안에 \ 문자 넣기) 등이 있.. 2023. 7. 5.
[프로그래머스] 3진법 뒤집기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 수를 3진법의 반전 결과를 저장할 리스트를 만든다. li = list() 입력받은 수가 0이 될 때까지 반복한다. while (n != 0) 수를 3으로 나눈 나머지를 리스트에 추가한다. li.append(n % 3) 수를 3으로 나눈 몫의 결과로 새로 저장한다. n //= 3 리스트의 길이만큼 반복한다. for i in range(len(li)) 3진법으로 저장되어 있는 리스트의 각 원소를 10진법으로 바꾸어 더한다. answer += li[i] * (3 ** (len.. 2023. 7. 4.
728x90
반응형