본문 바로가기

반응형

Algorithm

(109)
프로그래머스 JadenCase 문자열 만들기 C++ 프로그래머스 : JadenCase 문자열 만들기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 문자열이 주어지면 JadenCase 문자열로 만드는 문제이다. - 풀이 #include #include using namespace std; string solution(string s) { string answer = ""; char before = s[0]; if(isalpha(before)){ answer += toupper(before); } else{ answer += before; } for( int i = 1; i < s.size(); i+..
[백준][C++] 24060번 : 알고리즘 수업 - 병합 정렬 1 https://www.acmicpc.net/problem/24060 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net - 문제 문제에서 주어진 함수를 활용하여 문제를 해결하면 된다. - 해설 문제에서 merge_sort와 merge가 주어졌으므로 이를 활용하여 저장 횟수에 맞는 결과를 출력하면 된다. 출력 횟수를 count하는 전역변수를 하나 만들고, 함수 안에 k를 하나 더 추가해서 비교를 하도록 한다. - 풀이 #include using namespace std..
[백준][C++] 25501번 : 재귀의 귀재 https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net - 문제 문제에서 주어진 함수를 그대로 만들어서 사용하면 된다. - 해설 문제에서 주어진 recursion 함수에서 return을 1이랑 0을 하지 말고 l+1하면 된다. 원래 1이어야 할 곳에 l+1을 해서 몇번 recursion되었는지 확인하고, 0이어야 할 곳에는 -(l+1)을 해서 이게 0이라는 것을 표현하면 된다. - 풀이 #include #include using namespace std; int recursion(const char *s..
프로그래머스 숫자 짝꿍 C++ 프로그래머스 : 숫자 짝꿍 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - 문제 쉽게 말해 X와 Y에 공통으로 들어간 수를 모두 모아서 가장 큰 수 result를 만드는 문제다. X가 "1234"이고 Y가 "3456"이면 3이랑 4가 겹치고 3과 4를 이용해서 만들 수 있는 가장 큰 수는 43이므로 정답은 "43"이다. - 풀이 #include #include #include using namespace std; string solution(string X, string Y) { string answer = ""; sort(X.rbegin(),X.ren..
SWEA 1227 : 미로2(S/W 문제해결 기본)[파이썬] SW Expert Academy 1227: 미로2 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 입구와 출구가 주어지고 0으로 길이 나있으면 이 길을 따라가면 출구에 도착할 수 있는지 여부를 확인하는 문제다. - 풀이 def bfs(x, y): check = 0 temp = [[x, y]] # 시작지점을 temp에 넣고 visited[x][y] = 1 # 시작지점의 방문여부 True while True: # 스택이라고 생각하고 FILO(First in last out) i, j = temp.pop() for dir in range(4): # 상하좌우 네 가지 방향에 따라 반복 ni = i + dire..
SWEA 1226 : 미로1(S/W 문제해결 기본)[파이썬] SW Expert Academy 1266: 미로1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 입구와 출구가 주어지고 0으로 길이 나있으면 이 길을 따라가면 출구에 도착할 수 있는지 여부를 확인하는 문제다. - 풀이 def bfs(x, y): check = 0 temp = [[x, y]] # 시작지점을 temp에 넣고 visited[x][y] = 1 # 시작지점의 방문여부 True while True: i, j = temp.pop() # 스택이라고 생각하고 FILO(First in last out) for dir in range(4): # 상하좌우 네 가지 방향에 따라 반복 ni = i + dire..
SWEA 2005 : 파스칼의 삼각형(D2)[파이썬] SW Expert Academy 2005: 파스칼의 삼각형 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 입력으로 N이 주어지면 N개의 줄을 가진 파스칼의 삼각형을 출력해야 한다. - 풀이 T = int(input()) N = int(input()) for t in range(T): print("#{}".format(t+1)) answer = [] # 정답을 담아야 함 for i in range(N): temp = [] # 파스칼의 한 줄 for j in range(i+1): if j == 0 or j == i: # 한 줄에서 첫번째 혹은 마지막은 무조건 1 temp.append(1) else: te..
SWEA 2063 : 중간값 찾기(D1)[파이썬] SW Expert Academy 2063: 중간값 찾기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com - 문제 입력으로 N개의 숫자가 주어지면 이걸 정렬했을 때 중앙에 있는 값을 출력하는 문제다. - 풀이 N = int(input()) # map 형식으로 저장(int형으로 모든 값을 저장하는데 input().split()을 통해 띄워쓰기 되어 있으면 분리) 후 리스트로 만듬 numbers = list(map(int, input().split())) numbers.sort() # 오름차순으로 정렬 # 중간값은 총길이/2 +1인데, 배열은 0부터 시작이니 +1 안해도 됨 answer = numbers[N//2] ..

반응형