프로그래머스 - 신규 아이디 추천 JAVA
·
코테 문제 풀이/프로그래머스
문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. { 중략 } 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 ..
프로그래머스 - 완주하지 못한 선수 JAVA
·
코테 문제 풀이/프로그래머스
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import java.util.Arrays; class Solution { public String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant..
프로그래머스 - 두 개 뽑아서 더하기 JAVA
·
코테 문제 풀이/프로그래머스
문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.util.*; class Solution { public int[] solution(int[] numbers) { ArrayList list = new ArrayList(); for ( int i = 0; i
온코더 레벨 15 원형 배치
·
코테 문제 풀이/온코더 oncoder
class Solution: def solution(self, n1, n2, K): self.n1 = n1 self.n2 = n2 self.K = K self.t=[] if self.n2>=1 and self.n1>=1: for i in range(self.n1+self.n2): self.t.append('M') d=self.K i=0 r=[] while True: if d>len(self.t): while True: d = d-len(self.t) if d
온코더 레벨 14 레이저 발사
·
코테 문제 풀이/온코더 oncoder
from math import * class Solution: def solution(self, x, y1, y2): self.a = x self.b = y1 self.c = y2 sum=0 for i in range(len(self.a)): if(self.b[i]>self.c[i]): arg1 = self.b[i] arg2 = self.c[i] else : arg1 = self.c[i] arg2 = self.b[i] res = atan2(arg1,self.a[i])/pi res -= atan2(arg2,self.a[i])/pi sum += res return sum cs 이 문제를 풀기 위해서는 atan2 함수와 라디안(호도법) 단위를 알아야 한다. 라디안 범위는 원에 반지름에 대한 호의 길이의 비이다..
온코더 레벨 13 수열 중복 제거
·
코테 문제 풀이/온코더 oncoder
class Solution: def solution(self, sequence): self.s = sequence self.t = list(set(self.s)) for i in self.t: k = self.s.count(i) for j in range(k-1): self.s.remove(i) return self.s cs set()으로 중복되는 숫자를 제거해 어떤 숫자들이 있는지를 먼저 파악 후, k에 몇 번 중복되는지 갯수를 담는다. remove()는 처음 나오는 자료부터 지우기 때문에 k-1 만큼 중복된 숫자를 지워주면 된다. 출처 : www.oncoder.com/