본문 바로가기

728x90
반응형

programming/코테연습

(12)
[Python] 프로그래머스 로또의 최고 순위와 최저 순위 - level1 그렇게 어렵지는 않았었다. 일단 0이 (미지수) 몇개 있는지 세주고, 로또를 맞춘 번호가 있으면 match에 1씩 더해준다. match에 미지수의 갯수를 더하면 최고순위, match만 세면 최저순위가 된다. 등수를 맞춰줘야 하는데, 그건 dict를 사용해서 switch~case 구문처럼 사용했다. 그리고 answer list에 extends 해서 값을 하나씩 더해 리턴해줬다. def score(key): list={0:6,1:6,2:5,3:4,4:3,5:2,6:1}.get(key) return list def solution(lottos, win_nums): answer = [] zero=lottos.count(0) best=0 worst=0 match=0 for i in win_nums: if i in..
[python] 프로그래머스 3진법 뒤집기 - level1 파이썬이 너무 좋다.. 사랑에 빠진것만 같아.. 일단 문제부터 보세요 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 nresult 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n (10진법)n (3진법)앞뒤 반전(3진법)10진법으로 표현 125 11122 22111..
[python] 프로그래머스 신규 아이디 추천 - level1 맨날 자바로 하다가 처음으로 python을 사용해서 풀어봤는데, 코드도 훨씬 간단하고 쉬워서 앞으로 계속 파이썬으로 풀 생각이다. 일단 문제부터 보면, 단계별로 규칙에 맞지 않는 아이디를 변환시켜주면 된다. 물론 구글링을 계속해서 문제를 풀긴 했지만 검색하면서 파이썬 문법을 이것저것 배워서 정리겸 복습을 해보려고 한다. 우선 전체 코드 import re def solution(new_id): answer = '' #1단계 new_id=new_id.lower() #2단계 new_id=re.sub('[~!@#$%^&*\(\)=+\[\{\]\}:?,\/]', '', new_id) #print(new_id) #3단계 new_id=re.sub('\.+', '.', new_id) #4단계 if len(new_id)..
[java] 프로그래머스 콜라츠 추측 - level 1 class Solution { public int solution(long num) { int answer = 0; // 몇번 했는지 변수 while(num!=1) { if(num%2==0) { num=num/2; } else { num=num*3+1; } answer++; if(answer==500) { answer=-1; break; } } return answer; } } 반복문을 사용할때 while을 쓸건지 for문을 쓸건지 잘 생각해보기
[java] 프로그래머스 평균 구하기 - level 1 음.. 제일 쉬운 문제였다 엄청 빨리 푼거 같다 class Solution { public double solution(int[] arr) { double answer = 0; double sum=0; for(int i=0; i
[java] 프로그래머스 하샤드 수 - level 1 package programmers.leve1; public class 하샤드_수 { public boolean solution(int x) { boolean answer = false; int temp=x; // 계속해서 나눠줄 임시 변수 int sum=0; // 자릿수의 합 변수 while(temp/10!=0) { sum+=temp%10; // 각자리수 더해줌 temp=temp/10; // 계속 나눠주기 위해 temp에 값 대입 } sum+= temp; // 가장 마지막에 남는 수 더해줌 if(x%sum==0) // sum으로 나눈 값이 0이면 (나누어 떨어지면) answer=true; return answer; } } 코딩테스트 연습문제를 풀다보니 느끼는건 변수를 잡는게 진짜 중요하다는거 그리고 문..
[Java] 프로그래머스 핸드폰 번호 가리기 - level1 문자열 다루기라 자신있었는데.. package programmers.leve1; public class 핸드폰_번호_가리기 { public String solution(String phone_number) { String answer = ""; for(int i=0; i
[Java] 프로그래머스 행렬의 덧셈 - level1 2차원 배열을 활용하는 문제였다. 순간 살짝 헷갈려서 2차원 배열의 길이를 먼저 구해봤다. arr.length는 전체 길이인 2, arr[0].length는 {1,2}의 길이인 2 그래서 각각 답이 2,2가 나온다. 이걸 생각하면서 문제를 풀면 package programmers.leve1; public class 행렬의_덧셈 { public int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr1[0].length]; for(int i=0; i
[Java] 프로그래머스 x만큼 간격이 있는 n개의 숫자 - level1 내가 쓴 답안 class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for(int i=0; i
[Java] 프로그래머스 직사각형 별찍기 - level1 package programmers.leve1; import java.util.Scanner; public class 직사각형_별찍기 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for(int i=0; i

728x90
반응형