본문 바로가기

PS

(20)
1655 가운데를 말해요
[Programmer] 전화번호 목록 https://school.programmers.co.kr/learn/courses/30/lessons/42577# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 해당 주어진 문자열 안에 중복되는 문자가 있는지를 검사하는 문제이다.검사 했을 때 중복되지 않는다면 True, 아니면 False 를 출력 해야 되는 문제이다. def solution(phone_book): phone_dict = {} for number in phone_book: phone_dict[number] = True for number in phone_book: pre..
[Programmers] 폰켓몬 https://school.programmers.co.kr/learn/courses/30/lessons/1845# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이 문제는 폰켓몬의 리스트가 주어지고, 그 리스트의 /2의 개수 만큼 폰켓몬을 뽑을 수 있습니다.그 수의 최대를 출력하면 되는 문제 입니다.여기서 저는 순열이라고 생각을 하여 combinations 가져와서 문제를 풀었는데시간초과가 나버렸습니다. from itertools import combinationsdef solution(nums): answer = 0 set_list = set(nums) flag = False f..
[Programmer] 괄호 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 괄호들이 알맞게 짝 지어져 있는지 푸는 문제이다.def is_valid(s): stack = [] pair = {')': '(', ']': '[', '}': '{'} for char in s: if char in "({[": stack.append(char) elif char in ")}]": if not stack or stack[-1] != pair[ch..
[programmers] [PCCP 기출문제] 2번 / 석유 시추 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제는 위에 링크를 클릭하면 된다. 해당 문제는 NxM 배열에서 얼마나 많은 석유를 시추 할 수 있는지 최대값을 출력하는 문제 이다. 저는 이 문제는 DFS 형식으로 방문 처리를 진행 했습니다.여기서 제일 핵심은 해당 좌표의 값이 1 이고, 1과 같이 붙어있는 석유들을 하나의 그룹으로 지정하는 것이 핵심 입니다. 그 후 마지막에 시추 하는 형식으로 for문으로 탐색 하며 각 인덱스의 그룹의 값을 더해주어 max를 비교하면 되는 문제입니다. d..
[Programmers] [PCCE 기출문제] 9번 / 지폐 접기 https://school.programmers.co.kr/learn/courses/30/lessons/340199 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdef x (a): a = a//2 return adef rotation(a,b, wallet): if wallet[0] >= a and wallet[1] >= b: return True else: if wallet[1] >= a and wallet[0] >= b: return True else: return Falsedef solution(wal..
[Programmers] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지 https://school.programmers.co.kr/learn/courses/30/lessons/340212 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr이 문제는 주어진 diffs 에서 min, max 사이에서 알맞은 값의 레벨을 출력 하면 되는 문제 이다. 처음 문제를 구현을 했을 때는 for문을 통해 min~ max 까지 반복하면서 최솟값을 찾아 출력하는 형식으로 문제를 구현 했었다.예제 문제는 맞추었으나, 시간초과 문제가 발생하여 구현을 다른 방식으로 하게 되었다. 이러한 중간 사이에 값을 맞추는 방식으로 이진 탐색 기법을 사용 하였고  코드는 다음과 같다 def solution(diff..
[Programmers] [PCCE 기출문제] 9번 / 이웃한 칸 https://school.programmers.co.kr/learn/courses/30/lessons/250125 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr보드 판이 주어지고 ,좌표값에 맞는 보드 색상을 기준으로 4방향을 탐색해서 같은색이 몇 개가 있는지 출력하는 문제이다.4방향을 확인하기 위해 dx,dy를 통해 순차적으로 확인 할 수 있게 만들었고, 그 탐색하는 범위가 보드의 좌표를 벗어나는지 확인 하는 코드도 작성 하였다. def detaction(x, y, board, color): cnt = 0 dx = [0, 1, 0, -1] dy = [1, 0, -1, 0] ..
프로그래머스 공원 산책 https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주어진 방향에 따라서 장애물이 있는지 , 범위를 넘었는지를 확인 한 후 둘 중에 하나라도 해당 하지 않으면 다음 명령을 따른다. 이차원 배열로 길을 만들어 두고 주어진 명령으로 해당 맵을 확인 하는 식으로 코드를 짰다. IDE를 사용하지 않고 짜다 보니 계속 되는 if 문 for문에 헷갈렸다. 주석을 다는 것이 좋은거 같다. class Solution { public int[] solution(..
프로그래머스 바탕화면 정리 오랜만에 PS 문제를 풀었다. 그동안 만지지 않았던 자바를 다시 한번 복기 하면서 문법들을 기억해 냈다. import java.util.*; class Solution { public ArrayList solution(String[] wallpaper) { ArrayList arr = new ArrayList(); int x = 51; int y = 51; int x_ = 0; int y_ = 0; for(int i=0; ij){ y=j; } if(x_ < i){ x_ = i; } if(y_ < j){ y_ = j; } } } } x_ +=1; y_ +=1; arr.add(x); arr.add(y); arr.add(x_); arr.add(y_); return arr; } } 이번 문제에는 마우스 커서를 ..