2023๋ 4์ 1์ฃผ์ฐจ ์ฃผ๊ฐํ๊ณ
Time tracker
๊ตฌ๋ถ | ๋ชฉํ์๊ฐ | ์ฌ์ฉ์๊ฐ | ๋ฌ์ฑ๋ฅ % | ์์ธ๋ถ์ | ๋ค์ ์ฃผ์ ์ ์ฉํ ๊ฒ |
---|---|---|---|---|---|
๐งโโ๏ธ์์ | 11 | 10.5 | 95% | ์ด๋ฒ ์ฃผ๋ ๋ฃ๊ธฐ๋งํ๊ณ ๋ณธ๊นจ์ ์ ํ๋ค ใ .ใ โฆ. ์์ด๋ ๊ฒ ํ๊ธฐ๊ฐ ์ซ์ง | ์ถ๊ทผ๊ธธ 1์ผ 1ํ โ 6~14์ฅ ์ ๋ฆฌ๋ณธ ๋ณต์ต, ์๋ณด์นด ์์ฑ์ผ๋ก ๋ฃ๊ธฐ(ํ์น, ๊ฑธ์ ๋) 1์ผ 1ํ์ ์ฃผ๋ง ์์นจ์.. |
โ๏ธ์ง์ | 75 | 73.5 | 98% | 12์ฅ : 4 13์ฅ : 12.5 14์ฅ : 23.5 15์ฅ : 3 ์๋ฃ๊ตฌ์กฐ(์ฐ๊ฒฐ ๋ฆฌ์คํธ) : 7.5 ์์ : 10H ํน๊ฐ : 3.5 6~13 ๋ณต์ต+์ ๋ฆฌ+์ํ : 8H | |
์ฌํ์ | 1 | 1 | 100% | ||
๐โโ๏ธ์ ์ฒด์ | 3.5 | 1 | 29% | ์๋ฐ๋ผ ๊ฑฐ์น๋ ์ฌ๊ธฐ ใ ใ โฆ.. | |
๐์ | 49 | 52 | 106% | ์ผ์์ผ์ ๋ํต ๋๋ฌด ์ฌํด์ ๋ฏธ์น๋ ์ค ์์๋ค. 11์์ ๋ฐ๋ก ์์ผํ๋๋ฐ ํฐ ๋ณด๋๋ผ 10๋ถ 20๋ถ ๋ฆ๊ฒ ์๋ ๊ฒ ์์ด๋๊น ๋์ ๋๊ฒ ์์ธ์ธ๋ฏ,, 11์๋๋ฉด ๋ฐ๋ก ์๊ธฐ | |
๐งน๊ธฐํ | 24 | 29.5 | 123% |
์๊ฐ๊ธฐ๋ก

Weekly Feedback
์ด๋ฒ ์ฃผ ๋ชฉํ | ์ด๋ฒ ์ฃผ ๊ฒฐ๊ณผ |
---|---|
<์๋ฐ์ ์ ์ 13์ฅ~16์ฅ ๋๋ด๊ธฐ> 1. 13์ฅ ์ฐ๋ ๋ 2. 14์ฅ ๋๋ค์ ์คํธ๋ฆผ 3. 15์ฅ ์ ์ถ๋ ฅ(I/O) 4. 16์ฅ ๋คํธ์ํน | ๋ฌ์ฑ๋ฅ 58% 1. 13์ฅ ์ฐ๋ ๋ 2. 14์ฅ ๋๋ค์ ์คํธ๋ฆผ 4. 16์ฅ ๋คํธ์ํน |
์์ธ ๋ถ์
- ์์์น ๋ชปํ ์์๋ค์ด ๋ง์๋ค.
์์ ์ด ํ์๋ณด๋ค ๋ง์๊ณ (5h) ํน๊ฐ 3.5h์ ๊ณํ์ ์์๋ 12์ฅ ์์ฝ์ ๋ฆฌ(4h) ๋ํฉ 12.5h์ ์์ํ์ง ๋ชปํ ๊ณณ์ ์๊ฐ์ ์ฐ๊ฒ๋๋ค
์์์น ๋ชปํ ์ฑ๊ณต๊ณผ ์คํจ
์์ฑ
- ์๋ณด์นด ์์ฑ
์๋ณด์นด ๋จ์ด ๋ฑ๋กํด๋ ๊ฒ ์ด๋ํ๋ฉด์ ๋ค์ผ๋๊น ์๊ฐ ์๋ผ๋ฉด์ ๋ณต์ต๋ ๋์ด์ ๋๋ฌด ์ข์๋ค. ์ถ๊ทผ ์๊ฐ์ ์๋ณด์นด ๋จ์ด ์์ฑ ๋ฃ๊ธฐ ๋ชฉํ๋ก ์ถ๊ฐํด๋ !
- ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํ
์ด๋ฒ ์ฃผ๋ ์๋ฃ๊ตฌ์กฐ ์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ง์ ๊ตฌํํด๋ณด์๋๋ฐ ๋๋ฌด ์ฌ๋ฐ์๋ค..! ์ฐ์ ์์๊ฐ ๋ ๋์ ์๋ฐ ์ง๋ ๋๊ฐ๋๋ฐ์ ๋ง์ ์๊ฐ์ ์จ์ผ ํด์ add๋ toString๋ฐ์ ๊ตฌํํ์ง ๋ชปํ์ง๋ง ์ถํ ํํํ ํด์ remove๋ indexOf ๋ฑ๋ฑ..๋ ๊ตฌํํด๋ณด๊ณ ์ถ๋ค.
MyLinkedList.java
/** * 1. Node class ๋ง๋ค๊ธฐ * 2. ๊ธฐ๋ณธ ์์ฑ์ * 3. add ๋ฉ์๋ ์ถ๊ฐ * 4. ํ ์คํธ * 5. ์ง๋ค๋ฆญ ํด๋์ค๋ก ๋ณ๊ฒฝ */ public class MyLinkedList { private class Node { Node next; // ๋ค์ ๋ ธ๋ Object obj; // ๊ฐ private Node(Object obj) { this.obj = obj; } @Override public String toString() { return obj + ""; } } public MyLinkedList() {} private Node firstNode; /** * ๋ฉ์๋๋ช : add * ๊ธฐ๋ฅ : ์ง์ ๋ ๊ฐ์ฒด(o)๋ฅผ ๋ฆฌ์คํธ์ ๋์ ์ถ๊ฐ * ๋ฐํ๊ฐ : ์์ * ๋งค๊ฐ๋ณ์ : Object o */ public void add(Object o) { Node newNode = new Node(o); // Node๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , Node์ obj์ ์ ์ฅ๋ ๊ฐ์ฒด(o)์ ์ฃผ์๊ฐ์ ๋ฃ๋๋ค. if (firstNode == null) { firstNode = newNode; // ์ฒซ ๋ฒ์งธ ๋ ธ๋์ผ ๊ฒฝ์ฐ ๊ฐ๋ง ๋ฃ์ด์ฃผ๊ณ ๋๋ } else { Node lastNode = getLastNode(); // ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๊ฐ์ ธ์จ๋ค. lastNode.next = newNode; // ๋ง์ง๋ง ๋ ธ๋์ next์ ์๋ก ์์ฑํ Node ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ฃ์ด์ค๋ค. } } /** * ๋ฉ์๋๋ช : getLastNode * ๊ธฐ๋ฅ : ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๋ฐํํ๋ค. * ๋ฐํ๊ฐ : Node * ๋งค๊ฐ๋ณ์ : ์์ */ private Node getLastNode() { Node nextNode = firstNode.next; // nextNode๊ฐ null์ด๋ผ๋ ๊ฒ์ ์ฐ๊ฒฐ๋์ด์๋ node๊ฐ ํ๋๋ฟ์ด๋ผ๋ ๋ป. // ํ๋๋ฐ์ ์์ผ๋๊น firstNode๊ฐ lastNode์ด๋ฏ๋ก firstNode๋ฅผ ๋ฐํํด์ค๋ค. if (nextNode == null) return firstNode; // ๋ง์ง๋ง ๋ ธ๋๋ผ๋ ๊ฒ์ ์ฐธ์กฐ๋ณ์์ next์ ๊ฐ์ด null์ด๋ผ๋ ๊ฒ์ ์๋ฏธํจ. // nextNode.next์ ๊ฐ์ด null์ด ์๋ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ป์ ์ ์๋ค. while (nextNode.next != null) { nextNode = nextNode.next; } return nextNode; } @Override public String toString() { if (firstNode == null) return ""; // ์ฐ๊ฒฐ๋์ด์๋ Node๊ฐ ์์ผ๋ฉด ๊ณต๋ฐฑ ๋ฐํ String tmp = firstNode + ""; // ๋งํฌ๋ ๋ฆฌ์คํธ์ ์ฐ๊ฒฐ๋์ด์๋ ๋ชจ๋ obj ๊ฐ์ ๋ํ๊ธฐ ์ํ ๋ณ์ Node nextNode = firstNode.next; // nextNode๊ฐ null์ด๋ผ๋ ๊ฒ์ ์ฐ๊ฒฐ๋์ด์๋ node๊ฐ ํ๋ ๋ฟ์ด๋ผ๋ ๋ป. ํ๋๋ฐ์ ์์ผ๋๊น firstNode์ obj๊ฐ๋ง ๋ฐํํด์ค๋ค. if (nextNode == null) return tmp; tmp += (", " + nextNode); while (nextNode.next != null) { nextNode = nextNode.next; tmp += (", " + nextNode); } return tmp; } }
MyLinkedListGeneric.java (์ง๋ค๋ฆญ ํด๋์ค๋ก ๋ณ๊ฒฝ)
/** * 1. Node class ๋ง๋ค๊ธฐ * 2. ๊ธฐ๋ณธ ์์ฑ์ * 3. add ๋ฉ์๋ ์ถ๊ฐ * 4. ํ ์คํธ * 5. ์ง๋ค๋ฆญ ํด๋์ค๋ก ๋ณ๊ฒฝ * Object๋ฅผ ํ์ ๋ณ์๋ก ๋ณ๊ฒฝ */ public class MyLinkedListGeneric<E> { private class Node<E> { Node<E> next; // ๋ค์ ๋ ธ๋ E obj; // ๊ฐ private Node(E obj) { this.obj = obj; } @Override public String toString() { return obj + ""; } } public MyLinkedListGeneric() {} private Node<E> firstNode; /** * ๋ฉ์๋๋ช : add * ๊ธฐ๋ฅ : ์ง์ ๋ ๊ฐ์ฒด(o)๋ฅผ ๋ฆฌ์คํธ์ ๋์ ์ถ๊ฐ * ๋ฐํ๊ฐ : ์์ * ๋งค๊ฐ๋ณ์ : Object o */ public void add(E e) { Node<E> newNode = new Node(e); // Node๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , Node์ obj์ ์ ์ฅ๋ ๊ฐ์ฒด(o)์ ์ฃผ์๊ฐ์ ๋ฃ๋๋ค. if (firstNode == null) { firstNode = newNode; // ์ฒซ ๋ฒ์งธ ๋ ธ๋์ผ ๊ฒฝ์ฐ ๊ฐ๋ง ๋ฃ์ด์ฃผ๊ณ ๋๋ } else { Node<E> lastNode = getLastNode(); // ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๊ฐ์ ธ์จ๋ค. lastNode.next = newNode; // ๋ง์ง๋ง ๋ ธ๋์ next์ ์๋ก ์์ฑํ Node ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ฃ์ด์ค๋ค. } } /** * ๋ฉ์๋๋ช : getLastNode * ๊ธฐ๋ฅ : ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๋ฐํํ๋ค. * ๋ฐํ๊ฐ : Node * ๋งค๊ฐ๋ณ์ : ์์ */ private Node<E> getLastNode() { Node<E> nextNode = firstNode.next; // nextNode๊ฐ null์ด๋ผ๋ ๊ฒ์ ์ฐ๊ฒฐ๋์ด์๋ node๊ฐ ํ๋๋ฟ์ด๋ผ๋ ๋ป. // ํ๋๋ฐ์ ์์ผ๋๊น firstNode๊ฐ lastNode์ด๋ฏ๋ก firstNode๋ฅผ ๋ฐํํด์ค๋ค. if (nextNode == null) return firstNode; // ๋ง์ง๋ง ๋ ธ๋๋ผ๋ ๊ฒ์ ์ฐธ์กฐ๋ณ์์ next์ ๊ฐ์ด null์ด๋ผ๋ ๊ฒ์ ์๋ฏธํจ. // nextNode.next์ ๊ฐ์ด null์ด ์๋ ๋๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด ๋ง์ง๋ง ๋ ธ๋๋ฅผ ์ป์ ์ ์๋ค. while (nextNode.next != null) { nextNode = nextNode.next; } return nextNode; } @Override public String toString() { if (firstNode == null) return ""; // ์ฐ๊ฒฐ๋์ด์๋ Node๊ฐ ์์ผ๋ฉด ๊ณต๋ฐฑ ๋ฐํ String tmp = firstNode + ""; // ๋งํฌ๋ ๋ฆฌ์คํธ์ ์ฐ๊ฒฐ๋์ด์๋ ๋ชจ๋ obj ๊ฐ์ ๋ํ๊ธฐ ์ํ ๋ณ์ Node<E> nextNode = firstNode.next; // nextNode๊ฐ null์ด๋ผ๋ ๊ฒ์ ์ฐ๊ฒฐ๋์ด์๋ node๊ฐ ํ๋ ๋ฟ์ด๋ผ๋ ๋ป. ํ๋๋ฐ์ ์์ผ๋๊น firstNode์ obj๊ฐ๋ง ๋ฐํํด์ค๋ค. if (nextNode == null) return tmp; tmp += (", " + nextNode); while (nextNode.next != null) { nextNode = nextNode.next; tmp += (", " + nextNode); } return tmp; } }
- ๋๋ค์ ์ฒ์ ๋ฐฐ์ธ ๋ ์ดํด๊ฐ ์ ์ ๋์๋๋ฐ 2ํ๋
์ธ ์ง๊ธ์ ์๋ฒฝํ๊ฒ ์ดํดํ๋ค. ์๋์ฒ๋ผ ์ต๋ช
ํด๋์ค๋ก ๋จผ์ ์์ฑํด๋ณด๊ณ ๋ณํํ๋๊น ์์ ์ดํด์๋จ!
public class Main2 { public static void main(String[] args) { List<String> list = Arrays.asList("abc", "aaa", "bbb", "ddd", "aaa"); Collections.sort(list, new SortTest()); } } class SortTest implements Comparator<String> { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); // ์ ๋ ฌ๊ธฐ์ค ์ ๊ณต } }
public class Main2 { public static void main(String[] args) { List<String> list = Arrays.asList("abc", "aaa", "bbb", "ddd", "aaa"); Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { return o2.compareTo(o1); } }); } }
public class Main2 { public static void main(String[] args) { List<String> list = Arrays.asList("abc", "aaa", "bbb", "ddd", "aaa"); Collections.sort(list, (o1, o2) -> o2.compareTo(o1)); } }
์์ค
- ์ง๋ฌธ
๋ฌดํฑ๋๊ณ ์ง๋ฌธํ๊ธฐ ์ ์
- ์ฑ ๋ณด๋ค๊ฐ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด ๋์ค๋ฉด ์ผ๋จ ํ์ ํ๊ดํ์ผ๋ก ๋ฐ์ค์น๊ณ ๋์ด๊ฐ๊ธฐ
- ๊ทธ ์ฑํฐ ๋ค ๋ง์น๊ณ ์ดํด ์ ๋๋ ๋ถ๋ถ ๋ค์ ์ฝ์ด๋ณด๊ธฐ
- ๊ทธ๋๋ ์ดํด ์ ๋๋ฉด ๊ฒ์ or chatGPTํตํด์ ์ฐพ์๋ณด๊ณ
- ๋ด๊ฐ ์ดํดํ ๊ฒ ๋ง๋์ง ์ฒดํฌํ๋ ์ ๋๋ก ์ง๋ฌธ
- inbox ํ ์ผ ์์ฌ๋ง ๊ฐ๋ ๊ฒ
inbox ์ ๋ฆฌํ๋ ์๊ฐ์ ์ ํด๋์ง ์์ผ๋๊น ํ ์ผ๋ค์ด ์์ฌ๋ง๊ฐ๊ณ ์ฒ๋ฆฌ๊ฐ ์ ๋๋ค,, 1์์๋ ๋น์ฅ ๊ธํ๋๊น ์ผ๋ ๋ฒ๋ ํ๋๋ฐ ์ ์ ์ค์ํ 2์์์ ํ ์ผ๋ค์ด ์ง๊ธ ํ๋ฌ์งธ ๋ฏธ๋ค์ง๊ณ ์์
โ ์ ๋ ๋ฃจํด์ inbox ์ ๋ฆฌํ๋ ์๊ฐ ์ถ๊ฐํ๊ธฐ + ๋ ธํธ๋ถ ์ถฉ์ ..
๊ธ์ฃผ์ ๋ฐฐ์ด ๊ฒ๋ค
์คํ์์ค
๊ตต์งํ ์คํ ์์ค ํ๋ ์ ํด์ ์์ฃผ ์์ค ๊น๋ด์ผํจ(ex ์คํ๋ง) ๋ฐฐ์ฐ๋ ๊ฒ ์ ๋ง ๋ง์
์๋ฃ๊ตฌ์กฐ
- ๋ฐฐ์ด ๊ธฐ๋ฐ
- ์ฐ๊ฒฐ ๊ธฐ๋ฐ
- ๋ฐฐ์ด + ์ฐ๊ฒฐ โ ํด์ ํ ์ด๋ธ(HashMap)
- Tree
๋งํฌ๋ ๋ฆฌ์คํธ์์ ์ ๊ทผ ์๊ฐ์ ์ค์ด๋ ค๊ณ ๋์จ ๊ฒ Tree(์ด์ง ํธ๋ฆฌ)์ด๋ค. 0(n) โ 0(logN)
๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ์ด ์๋ฃ๊ตฌ์กฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ด๋ค. ๋๋จธ์ง๋ ๋ค ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ์ ์กฐํฉํด์ ๋์จ ๊ฒ์ด๋ค.
Stack
์ ๋ ฌ ๋ฐ๋๋ก ํ ๋๋ ๋ง์ด ์ฌ์ฉํ๋ค.
LinkedList
- ์ถ๊ฐ ์๊ฐ์ ์ค์ด๋ ค๋ฉด ๋งจ ์์ ์ถ๊ฐ๋ฅผ ํ๋ ๋ฐฉ๋ฒ๋ ์์(์ญ์ ์ ์ฅ)
- ํฌ์ปค ๊ฒ์ ์ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ํ์ฉ
TreeSet
์ด์ง ํ์ ํธ๋ฆฌ โ ์์ ๊ฒ ์ผ์ชฝ, ํฐ ๊ฒ ์ค๋ฅธ์ชฝ
์ํ : ์/๋ค/๊ฐ์ด๋ฐ/๋ ๋ฒจ
HashMap
๊ฒ์ ๋ฐฉ๋ฒ
- ์์ฐจ
- ์ด์ง
- ํจ์
ํด์ฑ์ ๋์ฉ๋ ๋ฐ์ดํฐ ๊ฒ์์ ์ฑ๋ฅ์ด ์ข๋ค.
HashSet์ HashMap์์ key๋ง ๋ฐ์์ ๋ง๋ ๊ฒ. ๋ด๋ถ์ HashMap์ ๊ฐ์ง๊ณ ์๋ค.
๋์ฉ๋ โ HashMap
๋ฒ์๊ฒ์, ์ ๋ ฌ โ TreeMap
๋ถ๋ฃจ๋ง๋ธ๊ฐ์ด ์ฐจ๋ก๊ฐ ๋์์์ผ ํ๋ ๊ฒ์ โ LinkedList

๋ฉํ์ ๋ํ ์ด์
์คํ๋ง์์ ๋ง์ด ์ฐ์ธ๋ค. ๋์ค์ ์์ค ๋ณผ ๋ ์ฐธ๊ณ ํ ๊ฒ
์ฐจ์ฃผ ๋ชฉํ
๊ตฌ๋ถ | ์ฐจ์ฃผ ๋ชฉํ |
---|---|
โ๏ธ์ง์ | <์๋ฐ์ ์ ์ 15์ฅ~16์ฅ ๋๋ด๊ธฐ> 1. 15์ฅ ์ ์ถ๋ ฅ(I/O) 2. 16์ฅ ๋คํธ์ํน - ๋งค์ผ 6~14์ฅ ๋ณต์ต : ์์นจ ์ด๋์๊ฐ์ ์๋ณด์นด, ์งํ์ฒ ์๋ ์์ฝ๋ณธ ๋ณด๊ธฐ |
๐งโโ๏ธ์์ | ํ์ผ : ๋
ผ์ด ํ๋ง๋ ์ฝ๊ธฐ(8์~8์ 10๋ถ) ์ฃผ๋ง : ์ดํ ์์ ๋ณธ๊นจ์ (7์ 20๋ถ~7์ 40๋ถ) |
๐โโ๏ธ์ ์ฒด์ | ๋งค์ผ ์คํ 10:40~10:50 ํผ๋กค๋ฌ ์คํธ๋ ์นญ |
๋ค์์ฃผ๋ํ์ดํ !๐
๋ด์ฃผ๊ฑฐ
๊ตฌ๋ถ ๋ชฉํ์๊ฐ ์ฌ์ฉ์๊ฐ ๋ฌ์ฑ๋ฅ % ์์ธ๋ถ์ ๋ค์ ์ฃผ์ ์ ์ฉํ ๊ฒ ๐งโโ๏ธ์์ 6 โ๏ธ์ง์ 82 ์ฌํ์ 3.5 ๐โโ๏ธ์ ์ฒด์ 3.5 ๐์ 49 ๐ฟ๊ธฐํ 25
Uploaded by N2T