코딩테스트 연습 시작 일만오천번째
마음이 진지해졌습니다.
코틀린도 공부했고, 쿠버네티스도 공부했고,
프로젝트도 했고,
남은건 코딩테스트 뿐.
인턴 및 취업을 위해선 코딩테스트를 놓치 않아야 한다.
시작해보자
오늘 문제는 2문제를 풀었다.
다시 시작하기에, 1년 반전쯤 파이썬으로 포기했던 0단계 어려운 문제 상위 종목들을
자바로 다시한번 도전해보았다.
문제 1. 겹치는 선분의 길이
https://school.programmers.co.kr/learn/courses/30/lessons/120876
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 풀이
걸린 시간 : 25~30분
class Solution {
public int solution(int[][] lines) {
/*
가로 3 세로 무한대로 놓기
*/
int[][] ground = new int[200][3]; // x축 : 점에 해당되는 line의 자리, y축 : 선분을 표현하기 위함
int[] diff = new int[3];
for(int i = 0; i < lines.length; i++){
lines[i][0] = lines[i][0] + 100;
lines[i][1] = lines[i][1] + 100;
diff[i] = lines[i][1] - lines[i][0];
}
for(int i = 0; i < lines.length; i++){
for(int j = lines[i][0]; j < lines[i][0] + diff[i]; j++){
// < 인 이유는 시작점과 끝점이 중첩되어 값이 이상해지기 때문
ground[j][i] = 1; // 점에 해당되는 자리를 1로 만듬
}
}
int answer = 0;
for(int i = 0; i < ground.length; i++){
int total = 0;
for(int j = 0; j < ground[i].length; j++){
total += ground[i][j]; // 한 줄의 값을 합침
}
if(total >= 2){
answer += 1; // 겹치는 부분이 있다면 값 + 1
}
}
return answer;
}
}
중첩 for 문이 많긴하다,,, 차차 나아지겠지,,,
문제 2. 옹알이
https://school.programmers.co.kr/learn/courses/30/lessons/120956
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 풀이
걸린 시간 : 20~25분
class Solution {
public int solution(String[] babbling) {
int result = 0;
String[] anounce = {"aya", "ye", "woo", "ma"};
for(int i = 0; i < babbling.length; i++){
for(int j = 0; j < anounce.length; j++){
babbling[i] = babbling[i].replace(anounce[j], " "); // 해당되는 부분을 바꿔치기
// " " 인 이유는 "" 이렇게 하면 다른 단어로 바뀌는 경우가 생기기에
}
babbling[i] = babbling[i].replace(" ", ""); // 다시 빈 문자열로 변환
if(babbling[i].equals("")){ //모든 부분이 " " 이었어야 해당되게 됨
result += 1;
}
}
return result;
}
}
- 느낀점
일단 중첩 for문이 다 쓰이긴 했지만, 그냥 1.5년 전 그렇게 해도 풀리지 않던게 풀리니
기분이 좋았다.
0단계 문제로 그러냐 싶겠지만, 옹알이는 정답률이 그때 당시엔 20퍼 대 였던 것으로 기억한다.
그동안 프로그래밍적 사고가 증가한듯한가..?
아무튼 중첩 for문을 없애는 방향으로
푸는 것보단 과정에 집중해야 겠다.
목표는 3단계까지 문제없이 푸는 정도다.
졸업까지는 1년 반정도.
졸업과 동시에 취업,,, 할 수 있겠지,,,?
'코딩테스트 - Java' 카테고리의 다른 글
| 기사단원의 무기, 비밀지도 - level1 (2) | 2024.09.21 |
|---|---|
| 덧칠하기 - level1 (1) | 2024.09.21 |
| 99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 : null (8) | 2024.08.21 |
| 99클럽 코테 스터디 11일차 TIL + 오늘의 학습 키워드 : 포인터 (0) | 2024.08.01 |
| 99클럽 코테 스터디 6일차 TIL + 오늘의 학습 키워드 : 경우의수 (0) | 2024.07.27 |
안녕하세요. 성장하고 싶은 개발자 orElse입니다. 지켜봐주세요.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!