알고리즘 문제풀이 For Java - 1회차, 6월23일 스터디
2021.06.23
스터디일지 : 2021-06-23 수요일
-
참석인원 : 동, 연, 새리, 시온, 케이, 산희 (6명)
-
진행시간 : 19시~22시(3시간)
-
문제
- 리트코드 플랫폼에서 4문제
- 6월 23일
-
문제별 개인 풀이내역
번호 | 링크 | 동 | 연 | 새리 | 시온 | 케이 | 산희 |
---|---|---|---|---|---|---|---|
1 | https://leetcode.com/problems/sort-integers-by-the-number-of-1-bits/ | O | O | O | O | O | O |
2 | https://leetcode.com/problems/groups-of-special-equivalent-strings/ | X | O | O | X | O | O |
3 | https://leetcode.com/problems/maximum-depth-of-n-ary-tree/ | X | X | X | O | X | O |
4 | https://leetcode.com/problems/merge-strings-alternately/ | O | O | O | O | O | O |
-
오늘의 자바 알고리즘문제풀이 회고
-
동
-
스벅에서 문풀을 했더니 맨탈 이 흔들려서 실수..?(라는 이름의 뇌절)를 많이했다. 이미 발표하신분 또시키고 ㅠ.ㅠ
-
요즘 개발을 많이한거 아닌데 약간 눈이 침침(..? 아니 벌써?)한건가 시린건가 약간 아까 무슨 소독차 구름속을 한번 지나서 그런거같기도 하다 ㅠㅠ..
-
-
연
- 오늘은 콜라를 안마셔도 그럭저럭 퍼포먼스가 나와서 기분이 좋았다
- 저녁은 맛있는걸 먹었는데 끝나고 라면 한봉지 더 끓여먹으면서 틀린문제를 리뷰해야겠다
-
새리
- 트리 자료구조가 생각보다 생각이 나지 않아서 생각외로 힘들었다..
- 특히 이번에 나온 리트코드 트리문제는 좀 .. 뭐랄까 로컬에서 테스트 돌리기 좀 많이 난감한 부분이 있었다. 데이터셋 넣기도 힘들고.
-
시온
- 일과시간에 자바로 프로젝트를 진행중인데, 오늘 기능 한가를 완성해 풀리퀘를 날리니 긴장이 풀려 힘들었다.
-
공통풀이문제 : merge-strings-alternately/
동
class Solution {
public String mergeAlternately(String word1, String word2) {
char[] answer = new char[word1.length() + word2.length()];
int idx = 0;
int p1 = 0;
int p2 = 0;
int m1 = word1.length();
int m2 = word2.length();
while (answer.length != p2+p1) {
if(p1 != m1) {
answer[idx] = word1.charAt(p1);
idx++;
p1++;
}
if(p2 != m2) {
answer[idx] = word2.charAt(p2);
idx++;
p2++;
}
}
return String.valueOf(answer);
}
}
연
public class MergeStringsAlternately {
public static String mergeAlternately(String word1, String word2) {
StringBuilder answer = new StringBuilder();
// 작은 길이 만큼 for 루프 돌기
int length = word1.length() < word2.length() ? word1.length() : word2.length();
for (int i = 0; i < length; i++) {
answer.append(word1.charAt(i)).append(word2.charAt(i));
}
if(word1.length() > length) {
answer.append(word1.substring(length));
}
if(word2.length() > length) {
answer.append(word2.substring(length));
}
return answer.toString();
}
public static void main(String[] args) {
System.out.println(mergeAlternately("abcd", "pq"));
}
}
새리
public String mergeAlternately(String word1, String word2) {
char[] char1 = word1.toCharArray();
char[] char2 = word2.toCharArray();
int leng1 = char1.length - 1;
int leng2 = char2.length - 1;
StringBuilder str = new StringBuilder();
int counter1 = 0, counter2 = 0;
while (counter1 <= leng1 || counter2 <= leng2) {
if (counter1 <= leng1) {
str.append(char1[counter1]);
counter1++;
}
if (counter2 <= leng2) {
str.append(char2[counter2]);
counter2++;
}
}
return str.toString();
}
시온
class Solution {
public String mergeAlternately(String word1, String word2) {
String result = "";
int lowerLength = word1.length() < word2.length() ? word1.length() : word2.length();
for (int i = 0; i < lowerLength; i++) {
result += word1.charAt(i);
result += word2.charAt(i);
}
String restOfWord1 = word1.substring(lowerLength);
String restOfWord2 = word2.substring(lowerLength);
result += restOfWord1;
result += restOfWord2;
return result;
}
}
히로
import java.io.*;
class Solution{
public String mergeAlternately(String word1, String word2) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("First string: ");
String s1 = br.readLine().toUpperCase();
System.out.print("Second string: ");
String s2 = br.readLine().toUpperCase();
if(s1.length() != s2.length()){
System.out.println("Unequal lengths!");
return;
}
String s3 = "";
int p1 = 0;
int p2 = s2.length() - 1;
while(true){
if(p1 == s1.length() || p2 < 0)
break;
s3 += s1.charAt(p1);
s3 += s2.charAt(p2);
p1++;
p2--;
}
System.out.println(s3);
}
}
댓글을 작성해보세요.